Thread サブクラスのキャンセル ポリシーの実装について質問があります。次のようにするのが一般的な方法のようです。
class A extends Thread {
[...]
public final void run() {
try {
while(!Thread.currentThread().isInterrupted()) {
[...]
}
} catch (InterruptedException consumed) {
}
}
public final void cancel() {
interrupt();
}
}
私が持っている質問は Thread.currentThread() に関するものです...中断フラグをチェックするために currentThread() を使用するのが一般的なのはなぜですか? 次のように A の isInterrupted() メソッドを呼び出すだけで十分ではないでしょうか。
while (!isInterrupted()) {
[...]
}
並列 Java に関する Brian Goetz の優れた本である Thread JavaDoc にも、stackoverflow にも答えが見つかりませんでした。
あなたの洞察を前もってありがとう!
乾杯、ゲオルグ