Junior — Middle
Qual é a diferença entre usar ExecutorService e criar novas threads através da classe Thread?
sobes.tech IA
Resposta da IA
A utilização de ExecutorService em Java difere da criação direta de threads através da classe Thread da seguinte forma:
- Gestão do grupo de threads:
ExecutorServicepermite criar um grupo de threads e reutilizá-los para executar múltiplas tarefas, o que reduz os custos associados à criação e destruição de threads. - Gestão do ciclo de vida:
ExecutorServicefornece métodos para terminar corretamente, aguardar a conclusão das tarefas e gerir a fila de tarefas. - Simplificação do código: Em vez de criar e lançar threads manualmente, pode-se simplesmente enviar tarefas ao
ExecutorService, que as distribuirá pelos threads.
Exemplo:
ExecutorService executor = Executors.newFixedThreadPool(3);
executor.submit(() -> {
System.out.println("A tarefa está a ser executada no pool de threads");
});
executor.shutdown();
Em contraste, ao usar Thread, é necessário criar e lançar cada thread manualmente, o que é menos eficiente e mais complicado.