线程状态
每个线程的状态可以是以下之一:
状态 | 解释说明 |
---|---|
run | 当线程正在执行时 |
sleep | 当线程正在休眠或等待 I/O 时 |
aborting | 当线程正在中止 |
false | 当线程正常终止时 |
nil | 当线程以异常终止时 |
你可以使用 status
方法获取线程的状态。查看线程时也会显示状态,在这种情况下,nil
或 false
状态显示为 'dead'
。
thread_status.rb
puts( Thread.main.inspect ) #=> #<Thread:0x28955c8 run>
puts( Thread.new{ sleep }.kill.inspect ) #=> #<Thread:0x28cddc0 dead>
puts( Thread.new{ sleep }.inspect ) #=> #<Thread:0x28cdd48 sleep>
thread1 = Thread.new{ }
puts( thread1.status ) #=> false
thread2 = Thread.new{ raise( "Exception raised!" ) }
puts( thread2 ) #=> nil