Ruby 2.4 および 2.5 では、スレッドを呼び出してもすぐにスレッドが停止することはないようです#kill
。このコード スニペットは、 Not deadを数回出力します。
thread = Thread.new { loop {} }
thread.kill
puts "Not dead" while thread.alive?
セカンダリ スレッドが強制終了されるまで、メイン スレッドの実行をブロックしたいと考えています。を使用してみthread.join.kill
ましたが、もちろん、スレッドのループが終了しないため、メインスレッドがブロックされます。
メインスレッドが続行する前に、スレッドが確実に強制終了されるようにするにはどうすればよいですか?