РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1009 of 1163 menu

Метод startVirtualThread

Метод startVirtualThread класса Thread создает и сразу запускает новый виртуальный поток. В единственный параметр мы передаем задачу типа Runnable, которая будет выполняться в этом потоке. Метод возвращает объект Thread, представляющий запущенный виртуальный поток. Виртуальные потоки легковесны и позволяют создавать их в больших количествах без существенных накладных расходов.

Синтаксис

Thread.startVirtualThread(Runnable task)

Пример

Давайте запустим виртуальный поток, который выведет строку в консоль:

public class Main { public static void main(String[] args) { Thread thread = Thread.startVirtualThread(() -> { System.out.println("running in virtual thread"); }); System.out.println(thread.isVirtual()); } }

Результат выполнения кода:

"running in virtual thread" "true"

Пример

Давайте запустим несколько виртуальных потоков и дождемся их завершения с помощью метода join:

public class Main { public static void main(String[] args) throws InterruptedException { Thread first = Thread.startVirtualThread(() -> { System.out.println("first"); }); Thread second = Thread.startVirtualThread(() -> { System.out.println("second"); }); first.join(); second.join(); System.out.println("done"); } }

Результат выполнения кода:

"first" "second" "done"

Пример

Давайте сравним виртуальный поток, созданный методом startVirtualThread, с обычным потоком:

public class Main { public static void main(String[] args) throws InterruptedException { Thread virtual = Thread.startVirtualThread(() -> { System.out.println("virtual"); }); Thread platform = new Thread(() -> { System.out.println("platform"); }); platform.start(); virtual.join(); platform.join(); System.out.println(virtual.isVirtual()); System.out.println(platform.isVirtual()); } }

Результат выполнения кода:

"virtual" "platform" "true" "false"

Смотрите также

  • метод ofVirtual,
    который создает построитель виртуальных потоков
  • метод isVirtual,
    который проверяет, является ли поток виртуальным
  • метод start,
    который запускает обычный поток
  • метод join,
    который ожидает завершения потока
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить