割り込みによる待機中・処理中スレッドの復帰方法
待機中の復帰方法
Thread.sleep()を利用して待機状態になっているスレッドを停止させるには、Thread.interrupt()を実行する。 Thread.interrupt()を実行すると、InterruptedExceptionが発生するので、InterruptedExceptionをキャッチしてタイムアウトに対するエラーハンドリング処理を行う。
処理中スレッドの復帰方法
待機中のスレッドでない場合はThread.interrupt()を実行しても即時にInterruptedExceptionが発生する訳ではない。 Thread.isInterrupted()によって割り込みがあるかを判断する処理を記述する必要がある。
Thread.isInterrupted()によって割り込みがあった場合は、タイムアウトに対するエラーハンドリング処理を行う。