Sobes.tech
Назад к вопросам
Senior
3

Как работают Virtual Threads?

Компании, где спрашивали
СБЕРСБЕР

Ответ от нейросети

sobes.tech AI

Virtual Threads (виртуальные потоки) — это легковесные потоки, введённые в Java для упрощения параллелизма и повышения масштабируемости приложений.

В отличие от традиционных потоков ОС, виртуальные потоки управляются JVM и не привязаны напрямую к системным потокам. Это позволяет создавать тысячи и даже миллионы виртуальных потоков с низкими накладными расходами.

Основные особенности:

  • Лёгковесность: виртуальные потоки занимают гораздо меньше памяти и ресурсов.
  • Параллелизм: позволяют эффективно использовать многопоточность без сложностей управления.
  • Поддержка блокирующего кода: виртуальные потоки могут блокироваться без блокировки системных потоков, так как JVM переключает их на другие задачи.

Пример создания виртуального потока (Java 19+):

Thread.startVirtualThread(() -> {
    System.out.println("Виртуальный поток работает");
});

Или через Executor:

ExecutorService executor = Executors.newVirtualThreadPerTaskExecutor();
executor.submit(() -> {
    // код задачи
});
executor.shutdown();

Таким образом, Virtual Threads упрощают написание конкурентного кода, делая его более масштабируемым и эффективным.