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?

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top