Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗jvSpVtCr 191 of 322 menu
◀ ▶

Создание виртуального потока в Java

Виртуальный поток создают так же, как обычную задачу для Runnable, но стартуют через специальные статические методы Thread. Самый короткий путь: передать лямбду в Thread.startVirtualThread, получить объект Thread и при необходимости дождаться конца через join.

Метод сразу ставит задачу на выполнение. Объект возвращается живым, поэтому главный поток может синхронизироваться с фоном так же, как с платформенным Thread.

Минимальный пример с выводом имени и флага isVirtual:

public class Main { public static void main(String[] args) throws InterruptedException { Thread v = Thread.startVirtualThread(() -> { Thread self = Thread.currentThread(); System.out.println(self.getName() + " virtual=" + self.isVirtual()); }); v.join(); System.out.println("done"); } }

Имя по умолчанию JVM выдаёт сама, часто с префиксом вроде VirtualThread-#. После join в консоли появится done: главный поток дождался завершения виртуального.

Если поток нужен без немедленного старта, позже воспользуемся фабрикой Thread.ofVirtual() и методом unstarted. Для простых сценариев достаточно startVirtualThread и явного ожидания там, где важен порядок шагов.

Запустите виртуальный поток, который печатает "ping". В main вызовите join и затем выведите "pong". Убедитесь, что "ping" всегда идёт раньше "pong".

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить