本文簡要介紹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 Thread.kill用法及代碼示例
- Ruby Thread.pending_interrupt?用法及代碼示例
- Ruby Thread.report_on_exception用法及代碼示例
- Ruby Thread.group用法及代碼示例
- Ruby Thread.list用法及代碼示例
- Ruby Thread.ignore_deadlock =用法及代碼示例
- Ruby Thread.stop用法及代碼示例
- Ruby Thread.abort_on_exception=用法及代碼示例
- Ruby Thread.stop?用法及代碼示例
- Ruby Thread.new用法及代碼示例
- Ruby Thread.report_on_exception=用法及代碼示例
- Ruby Thread.value用法及代碼示例
- Ruby Thread.run用法及代碼示例
- Ruby Thread.thread_variables用法及代碼示例
- Ruby Thread.thread_variable?用法及代碼示例
- Ruby Thread.thr[sym]用法及代碼示例
- Ruby Thread.thread_variable_get用法及代碼示例
- Ruby Thread.status用法及代碼示例
- Ruby Thread.priority=用法及代碼示例
- Ruby Thread.key?用法及代碼示例
- Ruby Thread.keys用法及代碼示例
- Ruby Thread.alive?用法及代碼示例
- Ruby Thread.priority用法及代碼示例
- Ruby Thread.handle_interrupt用法及代碼示例
- Ruby Thread.raise用法及代碼示例
注:本文由純淨天空篩選整理自ruby-lang.org大神的英文原創作品 Thread.join。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。