Ich habe eine lange laufende Aufgabe, so etwas wie:Java lange laufende Aufgabe Thema unterbrechen vs Abbrechen Flagge
public void myCancellableTask() {
while (someCondition) {
checkIfCancelRequested();
doSomeWork();
}
}
Die Aufgabe abgebrochen werden kann (eine angeforderte cancel und checkIfCancelRequested() überprüft, die die Flagge abzubrechen). Wenn ich solche abbrechbaren Loops schreibe, benutze ich normalerweise ein Flag, um anzuzeigen, dass ein Cancel angefordert wurde. Aber ich weiß, dass ich auch Thread.interrupt verwenden kann und überprüfe, ob der Thread unterbrochen wurde. Ich bin mir nicht sicher, welches der bevorzugte Ansatz wäre und warum, Gedanken?
Dank,
Jeff
Gute Sachen hier. Es ist allzu üblich, das Schlucken des Interrupts zu sehen oder einfach nur zu protokollieren und fortzufahren, ohne das Interrupt-Flag zurückzusetzen. Ich denke, die Leute sind frustriert, dass es eine kontrollierte Ausnahme ist, mit der sie nicht wissen, was sie tun sollen, also machen sie überhaupt nichts. –