ExecutorService.invokeAll -- was passiert wenn einige Tasks schon ausgefuehrt wurden?

sirbender

Top Contributor
Hi,

ich habe eine taskList die ich mit ExecutorService.invokeAll abarbeite. Nun ist es so, dass einige Tasks schon von einem anderen Thread abgearbeitet wurden. Welchen Einfluss hat das auf invokeAll? Skipped es einfach schon ausgefuehrte Tasks? Kann man das Verhalten irgendwo in den JavaDocs nachlesen?

Danke,
sb
 

Schandro

Top Contributor
probiers doch einfach aus. Ich würde mal vermuten das er einfach alle übergebenen callable's ausführt, woher soll er auch wissen ob einige davon schon ausgeführt wurden?
 

sirbender

Top Contributor
Ich hab das schon ausprobiert. Er fuehrt die aus.

Es geht mir auch darum zu wissen, ob die API irgendwelche Verhaltensangaben gibt. Jetzt nicht auf die Oracle JRE beschraenkt. Das Callable koennte schon sowas implementieren, dass es das Resultat speichert bzw. gleich das Future-Objekt und dann bei erneutem Aufruf dieses zurueckgeben und den Aufruf ueberspringen. Bei Future-Objekte gibt es ja auch Methoden wie isDone() die nahelegen, dass man sowas durchaus machen koennte.
 

Ähnliche Java Themen


Oben