Concurrency Начинающий

Создание миллионов лёгких виртуальных потоков вместо тяжёлых потоков ОС.

✕ Java 8
Thread thread = new Thread(() -> {
    System.out.println("hello");
});
thread.start();
thread.join();
✓ Java 21+
Thread.startVirtualThread(() -> {
    IO.println("hello");
}).join();
Заметили проблему в этом коде? Сообщите нам.

Лёгкие

Виртуальные потоки используют КБ памяти, платформенные потоки — МБ.

♾️

Масштабируемые

Создавайте миллионы потоков — настройка пула не требуется.

🧹

Простая модель

Пишите блокирующий код, который масштабируется как асинхронный.

Старый подход
Платформенные потоки
Современный подход
Виртуальные потоки
Начиная с JDK
21
Сложность
Начинающий
Виртуальные потоки
Доступно

Широко доступно с JDK 21 LTS (сент. 2023)

Виртуальные потоки — это лёгкие потоки, управляемые JVM, а не операционной системой. Можно создавать миллионы таких потоков без настройки пулов потоков. Они идеально подходят для задач, интенсивно использующих ввод-вывод, таких как HTTP-вызовы и запросы к базе данных.