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(); // кэшируемый пул
Основное отличие — фиксированный пул ограничивает число потоков, а кэшируемый динамически их создаёт и удаляет.