Что такое Пулы потоков?

Ответ

newFixedThreadPool(n) — фикс. число потоков, неограниченная LinkedBlockingQueue (при наплыве задачи копятся в очереди). newCachedThreadPool — неограниченно плодит потоки (ОПАСНО — OOM). newScheduledThreadPool — периодические задачи через scheduleAtFixedRate. В проде: ThreadPoolExecutor вручную с corePoolSize, задающим базовое число потоков.

Разбор: newFixedThreadPool использует неограниченную LinkedBlockingQueue (а не SynchronousQueue) и при наплыве задач копит их в очереди; newCachedThreadPool, наоборот, неограниченно плодит потоки и опасен OOM; newScheduledThreadPool умеет периодический запуск через scheduleAtFixedRate. Дистракторы переставляют эти свойства местами: путают, у кого опасность OOM, какая очередь используется и что corePoolSize — это базовое, а не максимальное число потоков.

Хочешь так же по своей компании — с вопросами по грейдам и задачами? Закажи гайд или забери свежее в Telegram.

Заказать гайд Пройти тест
новые гайды и свежие вопросы с собесов — первыми в Telegram Смотреть гайды Подписаться