私はこのコードを持っています:
puts "Start"
loop do
Thread.start do
puts "Hello from thread"
exit
end
text = gets
puts "#{text}"
end
puts "Done"
私が期待するのは、「開始」に続いて「スレッドからこんにちは」が表示され、エコーバックされる入力を入力できることです。代わりに、「Start」と「Hello from thread」が表示され、プログラムが終了します。
のドキュメントからexit
:
thr を終了し、別のスレッドの実行をスケジュールします。このスレッドがすでに強制終了されているとマークされている場合、exit はスレッドを返します。これがメイン スレッドまたは最後のスレッドである場合は、プロセスを終了します。
しかし、私は新しいスレッドを作成したと思いましたか? メインプロセスを終了するのはなぜですか?