Sobes.tech
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: ExecutorService permite 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: ExecutorService fornece 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.