Ruby 教程 之 Ruby 多线程 12
Ruby 多线程
线程实例化方法
以下实例调用了线程实例化方法 join:
实例
!/usr/bin/ruby
thr = Thread.new do # 实例化
puts "In second thread"
raise "Raise exception"
end
thr.join # 调用实例化方法 join
以下是完整实例化方法列表:
序号 方法描述
1 thr[ name ]
取出线程内与name相对应的固有数据。 name可以是字符串或符号。 若没有与name相对应的数据时, 返回nil。
2 thr[ name ] =
设置线程内name相对应的固有数据的值, name可以是字符串或符号。 若设为nil时, 将删除该线程内对应数据。
3 thr.abort_on_exception
返回布尔值。
4 thr.abort_on_exception=
若其值为true的话,一旦某线程因异常而终止时,整个解释器就会被中断。
5 thr.alive?
若线程是"活"的,就返回true。
6 thr.exit
终止线程的运行。返回self。
7 thr.join
挂起当前线程,直到self线程终止运行为止. 若self因异常而终止时, 将会当前线程引发同样的异常。
8 thr.key?
若与name相对应的线程固有数据已经被定义的话,就返回true
9 thr.kill
类似于 Thread.exit 。
10 thr.priority
返回线程的优先度. 优先度的默认值为0. 该值越大则优先度越高.
11 thr.priority=
设定线程的优先度. 也可以将其设定为负数.
12 thr.raise( anException )
在该线程内强行引发异常.
13 thr.run
重新启动被挂起(stop)的线程. 与wakeup不同的是,它将立即进行线程的切换. 若对死进程使用该方法时, 将引发ThreadError异常.
14 thr.safe_level
返回self 的安全等级. 当前线程的safe_level与$SAFE相同.
15 thr.status
使用字符串"run"、"sleep"或"aborting" 来表示活线程的状态. 若某线程是正常终止的话,就返回false. 若因异常而终止的话,就返回nil。
16 thr.stop?
若线程处于终止状态(dead)或被挂起(stop)时,返回true.
17 thr.value
一直等到self线程终止运行(等同于join)后,返回该线程的块的返回值. 若在线程的运行过程中发生了异常, 就会再次引发该异常.
18 thr.wakeup
把被挂起(stop)的线程的状态改为可执行状态(run), 若对死线程执行该方法时,将会引发ThreadError异常。