Senior
O que acontecerá se corePoolSize=5, maxPoolSize=10, fila=100 e inicialmente forem enviados 5 tarefas, depois mais 7?
sobes.tech IA
Resposta da IA
Com os parâmetros dados do ThreadPoolExecutor:
- corePoolSize = 5
- maxPoolSize = 10
- fila (BlockingQueue) = 100
O que acontecerá ao adicionar primeiro 5 tarefas e depois mais 7:
- As primeiras 5 tarefas serão executadas imediatamente em 5 threads principais, pois o número de threads ativos é menor que corePoolSize.
- As próximas 7 tarefas (da 6ª à 12ª) serão colocadas na fila, pois corePoolSize já foi atingido e a fila não está cheia.
- Como a fila não está cheia (pode conter até 100), novos threads além de corePoolSize não são criados, mesmo que maxPoolSize=10.
Resultado:
- 5 threads ativos (core)
- 7 tarefas na fila
- Os threads de 6 a 10 (maxPoolSize) não são criados, pois a fila não está cheia.
Somente quando a fila estiver cheia (mais de 100 tarefas) e os threads principais estiverem ocupados, threads adicionais serão criados até maxPoolSize.