スレッドの中断について明確にしたい。
スレッドが、InterruptedException をスローするメソッドを呼び出さずに長時間経過するとどうなりますか? 次に、定期的に Thread.interrupted を呼び出す必要があります。これは、割り込みが受信された場合に true を返します。例えば:
for (int i = 0; i < inputs.length; i++) {
heavyCrunch(inputs[i]);
if (Thread.interrupted()) {
// We've been interrupted: no more crunching.
return;
}
}
メソッドを呼び出すと、Thread.interrupt()
中断された例外がスローされるため、なぜそれを行う必要があるのか 、if (Thread.interrupted())
単にそれを行うだけです
try {
for (int i = 0; i < inputs.length; i++) {
heavyCrunch(inputs[i]);
if (Thread.interrupted()) {
// We've been interrupted: no more crunching.
return;
}
}
} catch (InterruptedException ex) {
...
}