当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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