Hallo alle Zusammen,
der ThreadPoolExecutor bietet einen die Möglichkeit Runnable Objekte aus der BlockingQueue mit remove zu entfernen. In meinen ersten Entwurf habe ich mich jedoch für die Verwendung von Callable Objekte entschieden, da jedes Objekte(task) ein Ergebnis zurückgeben muss. Die vom ThreadPoolExecutor erzeugten Futures bieten auch eine benötigte Timeoutfunktion.
Und genau das ist die Stelle wo mir nicht ganz klar ist was im Detail passiert. Das Future liefert eine Timeoutexception, was passiert jedoch mit den task wenn er in der BlockingQueue wartet?
Wird der task verworfen da die Queue die einzige Referenz hält oder wird er dennoch verarbeitet? Falls er verarbeitet wird, wie kann ich das verhindern? Ich nehme an das die remove Methode für diese Situation vorgesehen ist, wenn ja, wie handhabe ich das Problem mit callables.
VG
Elrond
der ThreadPoolExecutor bietet einen die Möglichkeit Runnable Objekte aus der BlockingQueue mit remove zu entfernen. In meinen ersten Entwurf habe ich mich jedoch für die Verwendung von Callable Objekte entschieden, da jedes Objekte(task) ein Ergebnis zurückgeben muss. Die vom ThreadPoolExecutor erzeugten Futures bieten auch eine benötigte Timeoutfunktion.
Und genau das ist die Stelle wo mir nicht ganz klar ist was im Detail passiert. Das Future liefert eine Timeoutexception, was passiert jedoch mit den task wenn er in der BlockingQueue wartet?
Wird der task verworfen da die Queue die einzige Referenz hält oder wird er dennoch verarbeitet? Falls er verarbeitet wird, wie kann ich das verhindern? Ich nehme an das die remove Methode für diese Situation vorgesehen ist, wenn ja, wie handhabe ich das Problem mit callables.
VG
Elrond