Executar Pool de threads mais de uma vez

0 respostas
A

Boa noite,

Senhores, tenho um Pool de threads que deve ser executado mais de uma vez. Porém ele só pode ser executado novamente após todas as threads da execução anterior já tiverem sido todas executadas. Como no exemplo abaixo:

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
import java.util.logging.Level;
import java.util.logging.Logger;
 
public class SimpleThreadPool {
 
    public static void main(String[] args) {
        ExecutorService executor = Executors.newFixedThreadPool(5);
        for (int i = 0; i < 10; i++) {
            Runnable worker = new WorkerThread("" + i);
            executor.execute(worker);
          }
        executor.shutdown();
        while (!executor.isTerminated()) {
        }
        System.out.println("Todas as threads da 1º rodada acabaram.... \nIniciando segunda rodada");
        executor = Executors.newFixedThreadPool(5);
        for (int i = 0; i < 10; i++) {
            Runnable worker = new WorkerThread("" + i);
            executor.execute(worker);
          }
        executor.shutdown();
        while (!executor.isTerminated()) {
        }
        System.out.println("Todas as threads da 2ª rodada acabaram");
    }
 
}
Eu só consigo fazer isso criando um ThreadPool novo após a execução do primeiro? É custoso computacionalmente ficar criando ThreadPools?
Criado 3 de fevereiro de 2015
Respostas 0
Participantes 1