ExecutorService warten bis alles fertig?

  • Themenstarter Themenstarter ExecWait
  • Beginndatum Beginndatum
E

ExecWait

Gast
Heyho,

ich habe einen ExecutorService instanziiert mit Executors.newFixedThreadPool(int size);
Ich starte nun alle meine Runnables und möchte nun warten, bis alle Runnables
im pool vollständig ausgeführt worden sind.

Wie genau kann ich das realisieren? Weil wenn ich jetzt nicht warte, fährt der Threadpool
runter. ein pool.join() gibt es nicht. Bei einem pool.awaitTermination() muss ich eine
Zeit übergeben, allerdings weiß ich garnicht, wie lange es dauern wird.

Hat jemand eine Idee?
 
Ist ähnlich wie Runnable nur mit Rückgabetyp. Wenn du keinen brauchst dann nutzt du einfach Void [c]class Foo implements Callable<Void>[/c] und gibst null zurück.
 
Okay, danke dir ich probiere das mal aus.

Was allerdings blockiert? Blockiert schon direkt der Aufruf invokeAll() oder
muss ich auch noch das isDone() abfragen?

"Executes the given tasks, returning a list of Futures holding their status and results when all complete."
Bedeutet doch, dass es solange wartet bis alle fertig sind ja?`(Bin im englischen nicht grad der Beste 😉)
 

Neue Themen


Zurück
Oben