Многопоточность senior
Когда что выбирать — свой ForkJoinPool или virtual threads?
Ответ
ForkJoinPool — для CPU-bound задач: математика, парсинг, трансформации без IO. Размер пула = число ядер. Wow-эффекта не даст, но не блокирует common pool. Virtual threads — для IO-bound: блокирующий JDBC, HTTP-вызовы, где поток при блокировке дёшево отпускает несущий поток.
Разбор: ForkJoinPool с размером ~числа ядер — для CPU-bound (математика, парсинг, трансформации без IO), а virtual threads — для IO-bound: они дёшевы и при блокировке на JDBC/HTTP отпускают несущий поток. Дистракторы меняют типы нагрузки местами: на счётных задачах виртуальные потоки бессмысленны (ядер всё равно ограниченное число), а раздувать ForkJoinPool под блокирующий IO неэффективно — для этого и придуманы virtual threads.
Хочешь так же по своей компании — с вопросами по грейдам и задачами? Закажи гайд или забери свежее в Telegram.