Erfordern FutureTask zu gestartet werden, bevor abgebrochen
-
09-10-2019 - |
Frage
In meinem Callable Code, den ich verwende Signalisierung zu einem anderen Thread mehr End Verhaltensweisen zu informieren. Die Callable-Objekte werden mit FutureTasks in einem Executor Warteschlange gestellt. Sie können auch nach dem in der Warteschlange bis abgebrochen werden.
Nun, mein Problem ist, dass ich mich auf den Aufgaben verlassen atleast für meine Signalisierung Arbeit begonnen wird, aber es sieht aus wie gerade der Executor eine Aufgabe überspringt, wenn sie als gelöscht markiert worden ist, bevor es eine Chance, um es auszuführen.
So ist es eine Möglichkeit, zu garantieren, dass eine Aufgabe immer gestartet wird, und immer abgebrochen (durch InterruptedException) während des Betriebs.
Sie können außerdem überprüfen, ob eine Aufgabe nicht begonnen hat aber nicht?
Lösung
You can probably subclass FutureTask class and override its done() method to perform the signalling. According to the documentation, this method should be called even if the task has been cancelled.