Виртуальные потоки
Создание миллионов лёгких виртуальных потоков вместо тяжёлых потоков ОС.
Сравнение кода
✕ 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
Виртуальные потоки
Доступно
Широко доступно с JDK 21 LTS (сент. 2023)
Как это работает
Виртуальные потоки — это лёгкие потоки, управляемые JVM, а не операционной системой. Можно создавать миллионы таких потоков без настройки пулов потоков. Они идеально подходят для задач, интенсивно использующих ввод-вывод, таких как HTTP-вызовы и запросы к базе данных.
Связанная документация
Доказательство