可以使用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次比赛