次のような長時間実行されるタスクがあります。
public void myCancellableTask() {
while ( someCondition ) {
checkIfCancelRequested();
doSomeWork();
}
}
タスクはキャンセルできます (キャンセルが要求され、checkIfCancelRequested() がキャンセル フラグをチェックします)。通常、このようなキャンセル可能なループを記述するときは、フラグを使用してキャンセルが要求されたことを示します。しかし、Thread.interrupt を使用して、スレッドが中断されたかどうかを確認することもできます。どちらが好ましいアプローチなのか、そしてその理由はよくわかりません。
ありがとう、
ジェフ