join -> self
[permalink][rdoc][edit]join(limit) -> self | nil
-
スレッド self の実行が終了するまで、カレントスレッドを停止します。self が例外により終了していれば、その例外がカレントスレッドに対して発生します。
limit を指定して、limit 秒過ぎても自身が終了しない場合、nil を返します。
- [PARAM] limit:
- タイムアウトする時間を整数か小数で指定します。単位は秒です。
- [EXCEPTION] ThreadError:
- join を実行することによってデッドロックが起きる場合に発生します。またカレントスレッドを join したときにも発生します。
以下は、生成したすべてのスレッドの終了を待つ例です。
threads = [] threads.push(Thread.new { n = rand(5); sleep n; n }) threads.push(Thread.new { n = rand(5); sleep n; n }) threads.push(Thread.new { n = rand(5); sleep n; n }) threads.each {|t| t.join}