1つのスレッドが答えを見つけたとき、すべてのスレッドの労働者を殺す(ルビー)
-
25-09-2019 - |
質問
ここではサンプルプログラムです
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、この場合には)答えを見つけたときに停止するために、すべてのスレッドをしたいと思います。私は、この概念は、私はそれを検索することができないんだ理由である、と呼ばれているかわからないんだけど。
私は助けに感謝:)
解決
あなたは、スレッドが答えを発見したと、ミューテックスを経由してスレッドによってアクセスされるかどうかを示す共有スレッド変数を必要とします。
所属していません StackOverflow