Entspricht Thread.join () im Executor
Ich habe eine neue Frage. Ich habe diesen Code:
public class Main
{
public static void main(String[] args) throws InterruptedException
{
// TODO Auto-generated method stub
IntHolder aHolder=new IntHolder();
aHolder.Number=0;
IncrementorThread A= new IncrementorThread(1, aHolder);
IncrementorThread B= new IncrementorThread(2, aHolder);
IncrementorThread C= new IncrementorThread(3, aHolder);
A.start();
B.start();
C.start();
A.join();
B.join();
C.join();
System.out.println("All threads completed...");
}
}
Welches wird warten, bis alle Threads abgeschlossen sind. Wenn ich benutzeExecutors
so was:
public class Main
{
public static void main(String[] args)
{
// TODO Auto-generated method stub
IntHolder aHolder=new IntHolder();
aHolder.number=0;
IncrementalRunable A= new IncrementalRunable(1, aHolder);
IncrementalRunable B= new IncrementalRunable(2, aHolder);
IncrementalRunable C= new IncrementalRunable(3, aHolder);
ExecutorService exec = Executors.newFixedThreadPool(3);
exec.execute(A);
exec.execute(B);
exec.execute(C);
//Don't know what to do here
System.out.println("All threads completed...");
}
}
Wie kann ich den Haupt-Thread anhalten, um zu warten, bis alle Threads im Executor beendet sind, d. H. Die Meldung "Alle Threads abgeschlossen ..." sollte gedruckt werden, nachdem alle Threads ihre Arbeit erledigt haben?