Многопоточность middle
Почему опасно использовать Executors.newCachedThreadPool() в проде?
Ответ
Unbounded очередь и неограниченное количество потоков — при всплеске нагрузки можно положить JVM OutOfMemoryError.
Разбор: newCachedThreadPool использует SynchronousQueue и не ограничивает количество потоков: при всплеске нагрузки он создаёт практически неограниченное число потоков, что может привести к OutOfMemoryError. Дистракторы перевирают механику: пул не однопоточный (это newSingleThreadExecutor) и не фиксированного размера (это newFixedThreadPool), а простаивающие потоки как раз завершаются через keep-alive 60 секунд.
Хочешь так же по своей компании — с вопросами по грейдам и задачами? Закажи гайд или забери свежее в Telegram.