Sobes.tech
Junior — Middle

Qual é a diferença entre o uso de FixedThreadPool e CachedThreadPool na gestão de threads?

sobes.tech IA

Resposta da IA

FixedThreadPool cria um grupo com um número fixo de threads. Todas as tarefas são executadas por esses threads, e se um thread estiver ocupado, as tarefas são colocadas na fila. Isso é útil quando é necessário limitar o número de threads que trabalham simultaneamente e controlar a carga.

CachedThreadPool cria novos threads conforme necessário e reutiliza os inativos. Se um thread não for usado por um tempo, ele é encerrado. Esse grupo é adequado para uma grande quantidade de tarefas curtas com uma quantidade imprevisível.

Exemplo de criação de grupos em Java:

ExecutorService fixedPool = Executors.newFixedThreadPool(5); // grupo fixo de 5 threads
ExecutorService cachedPool = Executors.newCachedThreadPool(); // grupo com cache

A principal diferença é que o grupo fixo limita o número de threads, enquanto o grupo com cache os cria e os remove dinamicamente.