Метод isVirtual
Метод isVirtual класса Thread проверяет,
является ли данный поток виртуальным. Метод не принимает
параметров и возвращает true, если поток виртуальный,
и false, если поток является обычным потоком
платформы. Виртуальные потоки были добавлены в Java 21
как часть Project Loom и позволяют создавать миллионы
легковесных потоков, управляемых JVM, а не операционной
системой.
Синтаксис
thread.isVirtual()
Пример
Давайте создадим виртуальный поток и проверим, является ли он виртуальным:
public class Main
{
public static void main(String[] args) throws InterruptedException
{
Thread thread = Thread.ofVirtual().start(() -> {
System.out.println("Running in virtual thread");
});
thread.join();
System.out.println(thread.isVirtual());
}
}
Результат выполнения кода:
"Running in virtual thread"
true
Пример
Давайте создадим обычный поток платформы и проверим, является ли он виртуальным:
public class Main
{
public static void main(String[] args) throws InterruptedException
{
Thread thread = Thread.ofPlatform().start(() -> {
System.out.println("Running in platform thread");
});
thread.join();
System.out.println(thread.isVirtual());
}
}
Результат выполнения кода:
"Running in platform thread"
false
Пример
Давайте проверим, является ли текущий поток виртуальным,
используя метод currentThread:
public class Main
{
public static void main(String[] args)
{
Thread current = Thread.currentThread();
System.out.println(current.isVirtual());
}
}
Результат выполнения кода:
false
Основной поток main всегда является потоком
платформы, поэтому метод возвращает false.
Смотрите также
-
метод
startVirtualThread,
который создаёт и запускает виртуальный поток -
метод
ofVirtual,
который создаёт builder для виртуальных потоков -
метод
ofPlatform,
который создаёт builder для потоков платформы -
класс
VirtualThread,
который представляет виртуальный поток