本文简要介绍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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。