當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Ruby Thread.join用法及代碼示例


本文簡要介紹ruby語言中 Thread.join 的用法。

用法

join → thr
join(limit) → thr

調用線程將暫停執行並運行此 thr

thr 退出或給定的limit 秒過去之前不會返回。

如果超時,則返回nil,否則返回thr

當主程序退出時,任何未加入的線程都將被殺死。

如果thr 之前已經引發了異常並且沒有設置 ::abort_on_exception 或$DEBUG 標誌,(因此尚未處理該異常),此時將對其進行處理。

a = Thread.new { print "a"; sleep(10); print "b"; print "c" }
x = Thread.new { print "x"; Thread.pass; print "y"; print "z" }
x.join # Let thread x finish, thread a will be killed on exit.
#=> "axyz"

以下示例說明了limit 參數。

y = Thread.new { 4.times { sleep 0.1; puts 'tick... ' }}
puts "Waiting" until y.join(0.15)

這將產生:

tick...
Waiting
tick...
Waiting
tick...
tick...

相關用法


注:本文由純淨天空篩選整理自ruby-lang.org大神的英文原創作品 Thread.join。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。