J
Java-разработчик
@iamjavadev17 подп.
24просмотров
25 декабря 2025 г.
questionScore: 26
🎯 Виртуальные потоки (Virtual Threads): революция или эволюция? Java 21 принесла виртуальные потоки — одну из самых важных фич за последние годы. Давайте разберёмся без хайпа. Проблема: Обычные (platform) потоки Java — это обёртки над потоками ОС. Они дорогие (память ~1 МБ, затраты на переключение контекста). 10 000 потоков = 10 ГБ RAM! Решение: Виртуальные потоки — легковесные потоки JVM, которые многопоточно выполняются на небольшом пуле platform-потоков. Простой пример: try (var executor = Executors.newVirtualThreadPerTaskExecutor()) { // Запускаем 10 000 задач без страха! for (int i = 0; i < 10_000; i++) { executor.submit(() -> { Thread.sleep(Duration.ofSeconds(1)); return "Done"; }); } } ✔️Когда использовать: ✈️ Много IO-задач (HTTP-запросы, БД, файлы) ✈️ Высоконагруженные сервисы с большим количеством параллельных операций ✈️ Заменять CompletableFuture и реактивные подходы в простых сценариях 🚫Когда НЕ использовать: ✈️ CPU-bound задачи (тяжёлые вычисления) ✈️ Код с synchronized (может блокировать carrier-поток) 📌Итог: Виртуальные потоки — не панацея, но мощный инструмент для IO-задач. Они упрощают конкурентный код, делая его похожим на последовательный. ✈️Подписаться: @iamjavadev #NPE@iamjavadev, #virtualthreads #java21 #многопоточность #производительность@iamjavadev
24
просмотров
1357
символов
Да
эмодзи
Нет
медиа

Другие посты @iamjavadev

Все посты канала →
🎯 Виртуальные потоки (Virtual Threads): революция или эволю — @iamjavadev | PostSniper