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

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

Сообщение Anonymous »

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

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

spring.threads.virtual.enabled=true
Я использую Spring Boot 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»