Javaプログラマーの技術メモ

勉強したことのメモ帳

割り込みによる待機中・処理中スレッドの復帰方法

待機中の復帰方法

Thread.sleep()を利用して待機状態になっているスレッドを停止させるには、Thread.interrupt()を実行する。 Thread.interrupt()を実行すると、InterruptedExceptionが発生するので、InterruptedExceptionをキャッチしてタイムアウトに対するエラーハンドリング処理を行う。

処理中スレッドの復帰方法

待機中のスレッドでない場合はThread.interrupt()を実行しても即時にInterruptedExceptionが発生する訳ではない。 Thread.isInterrupted()によって割り込みがあるかを判断する処理を記述する必要がある。

Thread.isInterrupted()によって割り込みがあった場合は、タイムアウトに対するエラーハンドリング処理を行う。

参考

d.hatena.ne.jp