SpringBoot 3.4: виртуальный поток включен, но выполняется последовательное выполнениеJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 SpringBoot 3.4: виртуальный поток включен, но выполняется последовательное выполнение

Сообщение Anonymous »

В моем приложении на базе Springboot 3.4 и Java 21 я включил виртуальные потоки через:

Код: Выделить всё

spring.threads.virtual.enabled=true
И я использую SpringBoot 3.4:

Код: Выделить всё

        org.springframework.boot
spring-boot-starter-parent
3.4.0
Изменить: теперь я понимаю, что делал неправильно: в любом случае нужно использовать StructuredTaskScope, если вас все еще интересует мой первоначальный вопрос, продолжайте читать :)

Однако, когда я запускаю свой код, я не вижу структурированного параллелизма! Вместо этого это происходит последовательно. Вот код:

Код: Выделить всё

    public String testFlow() {
final Instant start = Instant.now();
// Step 1: Generate a random expression
String expression = generateExpression();
log.info("Generated expression: {}", expression);

//dummy calls to check if virtual threads make it parallel
String dummy1 = generateExpression();
String dummy2 = generateExpression();
...

private String generateExpression() {
log.info("Current Thread: {}", Thread.currentThread().getName());
return restClient
.get()
.uri("/generate")
.retrieve()
.body(String.class);
}
В журнале «Текущий поток» также отображается «Текущий поток: tomcat-handler-13», тогда как я ожидал, что будет напечатан виртуальный поток.Полный код в github
Кроме того, ниже взята моя распределенная трассировка приведенного выше потока:
Здесь вы можете увидеть, как генератор вызывается 3 раз и выполняется последовательно, а не параллельно
Изображение


Как такое возможно?

Подробнее здесь: https://stackoverflow.com/questions/792 ... -execution
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»