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");
}
}