Hallo,
schlage mich gerade mit der Multithread Programmierung rum...und habe folgendes Problem...
Ich habe bis dato einen eleganten Weg gefunden meine Threads zu starten...so weit so gut...
Nun ist die Frage: Wie kann ich es elegant anstellen, dass ich feststelle, ob alle gestarteten Threads auch beendet sind ?
Klar kann ich per execCompletion.poll() feststellen, ob Tasks beendet wurden...aber dann müste ich ja selbst die Task zählen...finde ich jetzt recht unelegant...
Das wäre Ausbaustufe Nr. 1...
Hätte da einer eine Idee oder einen Vorschlag ?
Vielen Dank im Voraus.
Gruß
Karl Heinz Marbaise
schlage mich gerade mit der Multithread Programmierung rum...und habe folgendes Problem...
Ich habe bis dato einen eleganten Weg gefunden meine Threads zu starten...so weit so gut...
Java:
ExecutorService exec = Executors.newFixedThreadPool(numberOfThreads);
ExecutorCompletionService<Index> execCompletion = new ExecutorCompletionService<Index>(exec);
....
VersionRange vr = readLogs.getVersionRange();
...
for (VersionRange versionRange : versionRanges) {
TaskXYZ task = new TaskXYZ(parameter, versionRange);
execCompletion.submit(task);
}
//Warten bis alle fertig sind ...?
Klar kann ich per execCompletion.poll() feststellen, ob Tasks beendet wurden...aber dann müste ich ja selbst die Task zählen...finde ich jetzt recht unelegant...
Das wäre Ausbaustufe Nr. 1...
Hätte da einer eine Idee oder einen Vorschlag ?
Vielen Dank im Voraus.
Gruß
Karl Heinz Marbaise