Вот пример программы:
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). Я не уверен, как называется эта концепция, поэтому я не могу ее найти.
Я ценю помощь:)