线程状态

每个线程的状态可以是以下之一:

状态 解释说明
run 当线程正在执行时
sleep 当线程正在休眠或等待 I/O 时
aborting 当线程正在中止
false 当线程正常终止时
nil 当线程以异常终止时

你可以使用 status 方法获取线程的状态。查看线程时也会显示状态,在这种情况下,nilfalse 状态显示为 'dead'

thread_status.rb
  1. puts( Thread.main.inspect ) #=> #<Thread:0x28955c8 run>
  2. puts( Thread.new{ sleep }.kill.inspect ) #=> #<Thread:0x28cddc0 dead>
  3. puts( Thread.new{ sleep }.inspect ) #=> #<Thread:0x28cdd48 sleep>
  4. thread1 = Thread.new{ }
  5. puts( thread1.status ) #=> false
  6. thread2 = Thread.new{ raise( "Exception raised!" ) }
  7. puts( thread2 ) #=> nil