ruby线程操作(续)线程的状态

线程的状态一共有5种,如下:

sleep     线程处于休眠状态,或者在等待IO

run        线程处于运行状态

aborting  线程被取消

false     线程正常终止

nil         线程被非正常终止

可以使用status来查看进程现在的状态

threadpass1=Thread.start do
	puts"我是正在运行的\n"
end
s1=threadpass1.status
puts"我的状态是:"+s1.to_s
运行结果

我是正在运行的
我的状态是:run


下面简单介绍一下线程的方法。有main,list,current 方法,其中list方法返回的是一个数组,用于存储线程

thread1=Thread.new do 
	sleep 2
end
thread2=Thread.new do 
	if Thread.current==Thread.main
		puts"当前线程是主线程"
	end
end
num=Thread.list.size
puts"线程的数量是:#{num}"
if Thread.list.include?(Thread.main)
	puts"现在运行的是主线程"
end
运行结果:
线程的数量是:3
现在运行的是主线程


可以使用priority方法查看线程的优先级

thread4=Thread.new do 
	puts"当前线程是否被执行:#{thread4.alive?}"
end
thread4.priority=4
puts"线程thread3的优先级是:#{thread3.priority}"
puts"线程thread4的优先级是:#{thread4.priority}"
执行结果

线程thread3的优先级是:0
线程thread4的优先级是:3





 

你可能感兴趣的:(ruby)