Ruby 1.8.7 リファレンスマニュアル > ライブラリ一覧 > 組み込みライブラリ > Threadクラス > exit!
exit! -> self[permalink][rdoc]kill! -> selfterminate! -> selfensure 節を実行せずにスレッドの実行を終了させます。
ただし、スレッドは終了処理中(aborting)にはなりますが、 直ちに終了するとは限りません。すでに終了している場合は何もしません。このメソッドにより 終了したスレッドの Thread#value の返り値は不定です。 自身がメインスレッドであるか最後のスレッドである場合は、プロセスを Kernel.#exit(0) により終了します。
th1 = Thread.new do
begin
sleep 10
ensure
p "th1: this will be displayed"
end
end
th2 = Thread.new do
begin
sleep 10
ensure
p "th2: this will NOT be displayed"
end
end
th1.kill
th2.kill!
#=> "th1: this will be displayed"
[SEE_ALSO] Thread#exit, Kernel.#exit, Kernel.#exit!