[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[jfriends] Thread#interrupt()




こんにちは。下村です。(本名を名乗るようにしました)

疑問なのですが、Thread#sleep() や Object#wait() などは
java.lang.InterruptedException を投げますよね。
この例外が存在する理由は何なのでしょう?

JDK のリファレンスには Thread#interrupt() によって中断されたときに
投げられるとあるだけです。そこで簡単なプログラムを書いて
実験してみましたが、interrupt() を呼び出しても必ずしも中断する
わけではなく、いまいち用途が分かりません。

さらによく分からないのが、Thread#interrupted() で、
これはカレントスレッドが中断されているかどうか調べる
(Tests if the current thread has been interrupted.)とありますが、
中断されているスレッドからどうやって呼び出すのでしょう??
あるいは、has been を「させられたことがある」と訳すのかな?

いずれにしても、「こういう役に立つ」という例をご存知の方が
いらっしゃいましたら、教えてください。

では。

         === == =  TACT/下村哲人  神奈川県横浜市  = == ===
          === == =       E-mail: tact@xxxxxxxxxx      = == ===