次のようなスレッドを作成するとします。
thread = Thread.new do
loop do
puts "tick"
sleep(1)
end
end
どこかで、このスレッドにそれをやめさせて some_method() を実行させたい場合、どうすればよいでしょうか?
次のようなスレッドを作成するとします。
thread = Thread.new do
loop do
puts "tick"
sleep(1)
end
end
どこかで、このスレッドにそれをやめさせて some_method() を実行させたい場合、どうすればよいでしょうか?
他のスレッドに変数を設定させ、このスレッドでその値をチェックします。アプローチはこの回答で詳しく説明されています: ruby で条件が true になるまでスリープする
必要でない場合puts "tick"
は、代わりに条件変数を使用できます。