Ruby线程

Thread.new([arg, ...]) { ... }

Thread.start([arg, ...]) { ... }

Thread.fork([arg, ...]) { ... }

生成线程,并开始对块进行计算.

参数会被原封不动地传递给块. 这就可以在启动线程的同时,将值传递给该线程所固有的局部变量.

返回生成的线程.

 

Thread.join 

挂起当前线程,直到self线程终止运行为止. 若self因异常而终止时, 将会当前线程引发同样的异常.

若某线程内发生了异常,且没有被线程内的 rescue 捕捉到时,通常该线程会被停掉,而不会发出警告。但是,如果这时正好有其它线程因Thread#join而等待这个被停掉的线程时,则会在等待线程中再次引发相同的异常。

 

Thread.pass

将运行权交给其他线程. 它不会改变运行中的线程的状态,而是将控制权交给其他可运行的线程(显式的线程调度).

返回nil.

 

a = Thread.new { print "a"; Thread.pass;
                 print "b"; Thread.pass;
                 print "c" }
b = Thread.new { print "x"; Thread.pass;
                 print "y"; Thread.pass;
                 print "z" }
a.join
b.join

    结果:

axbycz

 

Thread.stop (暂停)

将当前线程挂起,直到其他线程使用run方法再次唤醒该线程.

返回nil.

 

Thread.exit (退出)

终止当前线程的运行。

返回当前线程。

若当前线程是唯一的一个线程时,将使用exit(0)来终止它的运行。

 

Thread.kill(thread)

终止指定线程的运行。若该线程已经终止,则不作任何动作。

返回thread。

 

 

Source:

Programming Ruby:  Threads and Processes    

http://phrogz.net/ProgrammingRuby/tut_threads.html#threadsandprocesses

Thread 参考手册

http://www.kuqin.com/rubycndocument/man/built-in-class/class_object_thread.html

Thread.pass

http://phrogz.net/ProgrammingRuby/ref_c_thread.html#Thread.pass

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值