1. 程式人生 > >ruby執行緒操作(續)顯示和停止執行緒

ruby執行緒操作(續)顯示和停止執行緒

可以使用pass方法暫停執行緒,執行其他的執行緒:

threadpass1=Thread.start do 
	threadpass1.pass
	puts"我沒希望了,看你的了,加油happy! \n"
end
Thread.new do
	puts"看我的吧,我一定會成功的,因為我是happy\n"
end
執行結果
看我的吧,我一定會成功的,因為我是happy

使用sleep方法能使程序進入休眠狀態,待時間結束執行緒會sleep狀態變為可執行狀態,還可以使用wakeup喚醒處於休眠狀態的程序
puts"開始時間是:"+Time.now.to_s
sleep 3
puts"暫停三秒後時間為"+Time.now.to_s
sleep 4
puts"暫停四秒後時間為"+Time.now.to_s
執行結果:
開始時間是:2015-11-03 20:00:03 -0400
暫停三秒後時間為2015-11-03 20:00:06 -0400
暫停四秒後時間為2015-11-03 20:00:10 -0400

使用kill和exit方法停止程序
i=1
threadkill1=Thread.new 10 do |value|
	while i<value
		puts"#{i}"
		i+=1
		if(i>5)
			Thread.kill threadkill1
		end
	end
end
threadexit1=Thread.new do
	10.times do |a|
		puts"第#{a+1}次比賽"
		if(a>4)
			Thread.exit
		end
	end
end
執行結果:
1
2
3
4
5
第1次比賽
第2次比賽
第3次比賽
第4次比賽
第5次比賽
第6次比賽