Многопоточность middle
Чем опасен Executors.newCachedThreadPool() в проде?
Ответ
Неограниченное количество потоков — при всплеске нагрузки может положить JVM через OutOfMemoryError (unable to create new native thread).
Разбор: newCachedThreadPool() имеет неограниченный максимум потоков (Integer.MAX_VALUE) и SynchronousQueue без буфера, поэтому при всплеске он создаёт новый поток под каждую задачу и может исчерпать нативную память — OutOfMemoryError: unable to create new native thread. Ловушки в дистракторах: проблема не в переполнении очереди (очередь не буферизует) и не в отбрасывании задач, а простаивающие потоки как раз завершаются через 60 секунд.
Хочешь так же по своей компании — с вопросами по грейдам и задачами? Закажи гайд или забери свежее в Telegram.