Необычное поведение при вызове System.out.println из виртуальных потоковJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Необычное поведение при вызове System.out.println из виртуальных потоков

Сообщение Anonymous »

При запуске примера программы, которая вызывает метод System.out.println из новых виртуальных потоков Java, я получаю странные результаты. Вот пример программы:

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

import java.math.BigInteger;
import java.time.LocalDateTime;

public class VirtualThreadTest {

public static void main(String[] args) {
for(int i = 1; i  {
System.out.println(LocalDateTime.now());
System.out.flush();
expensiveTask();
});
}

sleepMainThread();
}

private static void expensiveTask() {
var bi = BigInteger.ONE;
for(int i = 2; i < 50_000; i+=1) {
bi = bi.multiply(BigInteger.valueOf(i));
}
}

private static void sleepMainThread() {
try {
Thread.sleep(60_000);
} catch(Exception e) { e.printStackTrace(); }
}
}
Сначала программа будет печатать текущее время в порядке возрастания, но через некоторое время она будет печатать значения в прошлом, например:

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

2024-05-08T14:17:34.925188363
2024-05-08T14:17:34.925920200
2024-05-08T14:17:34.925993640
2024-05-08T14:17:34.926365126
...
2024-05-08T14:17:50.927143298
2024-05-08T14:17:51.136285346
2024-05-08T14:17:34.925684196  // prints value in the past
2024-05-08T14:17:51.251390867
2024-05-08T14:17:51.309471812

Кто-нибудь знает, почему это происходит? Спасибо.

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

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • System.out.print против System.out.println (последнее предложение)
    Anonymous » » в форуме JAVA
    0 Ответы
    38 Просмотры
    Последнее сообщение Anonymous
  • OpenTeLemetry-CPP тестовый приложение работает, но тот же код в Times Out Out Out
    Anonymous » » в форуме C++
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous
  • Почему System.out.println() в Java выводит на консоль?
    Anonymous » » в форуме JAVA
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • Как метод toString() автоматически вызывается внутри System.out.println()
    Anonymous » » в форуме JAVA
    0 Ответы
    24 Просмотры
    Последнее сообщение Anonymous
  • System.out.println всегда печатает ноль [дубликат]
    Anonymous » » в форуме JAVA
    0 Ответы
    26 Просмотры
    Последнее сообщение Anonymous

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