Sobes.tech
Back to questions
Junior — Middle
80

Чем отличается использование FixedThreadPool от CachedThreadPool в управлении потоками?

Answer from AI

sobes.tech AI

FixedThreadPool создаёт пул с фиксированным числом потоков. Все задачи выполняются этими потоками, а если поток занят, задачи ставятся в очередь. Это хорошо, когда нужно ограничить количество одновременно работающих потоков и контролировать нагрузку.

CachedThreadPool создаёт новые потоки по мере необходимости и переиспользует неактивные. Если поток не используется некоторое время, он завершается. Такой пул подходит для большого количества коротких задач с непредсказуемым количеством.

Пример создания пулов в Java:

ExecutorService fixedPool = Executors.newFixedThreadPool(5); // фиксированный пул из 5 потоков
ExecutorService cachedPool = Executors.newCachedThreadPool(); // кэшируемый пул

Основное отличие — фиксированный пул ограничивает число потоков, а кэшируемый динамически их создаёт и удаляет.