以下是一个示例程序:
def worker(from, to)
puts "#{from}..#{to}"
for i in from..to do
if i == 42
puts "kill the rest of the threads"
break;
end
puts i
sleep 1
end
end
if __FILE__ == $0
threads = []
for i in 0..9 do
threads << Thread.new { worker(i*10, i*10+10) }
end
threads.each { |thread| thread.join }
end
当其中一个线程找到答案时,我希望所有线程停止(在本例中为42)。我不确定这个概念叫什么,这就是为什么我无法搜索它。
我很感激帮助:)
答案 0 :(得分:1)
您需要一个共享线程变量,指示线程是否找到了答案并由线程通过Mutex访问。