6
私は、コードのこの部分を持っている:なぜRubyスレッドを終了すると私のプログラム全体が終了するのですか?
puts "Start"
loop do
Thread.start do
puts "Hello from thread"
exit
end
text = gets
puts "#{text}"
end
puts "Done"
私が期待する何が「スレッドからこんにちは」「スタート」に続いて見ていると、私は私に戻ってエコーになるだろう入力を入力することができます。代わりに私は "開始"と "こんにちはスレッドから"取得し、プログラムが終了します。 exit
のドキュメントから
:
はTHRとスケジュールを実行する別のスレッドを終了します。このスレッド がすでに終了しているとマークされている場合、exitはスレッドを返します。これが の場合、メインスレッドまたは最後のスレッドはプロセスを終了します。
しかし、私は新しいスレッドを生み出したと思いましたか?なぜ私のメインプロセスを終了していますか?