2012-03-08 13 views
1

基本的には、Thread.newによって作成されたスレッドが終了し、その後に行が挿入されることを知りたいと思います。それ、どうやったら出来るの?RubyでThread.new終了後に行を印刷する

+0

私は方法がわかりません。私はポニーを使用して電子メールを送信する新しいスレッドを生成するプロジェクトに取り組んでいます。しかし、私はこの機能を追加した後、プロジェクトは多くのCPUリソースを描画し始めます。だから私は産んだスレッドが決して実際に終了しないのだろうかと思っていました。あなたが助けることができれば幸いです。 – revolver

答えて

0

あなたは、スレッドが終了するまでブロックするためにThread.joinを使用することができます。

thread = Thread.new # Obviously called with necessary arguments 
thread.join 
puts "Thread has terminated" 
+0

Thread.joinは、生成されたスレッドが終了するまで元のスレッドをブロックしていますか?両方のスレッドを同時に実行したい場合はどうすればいいですか – revolver

+0

同時に実行すると、終了時の状態をどのように知ることができますか?あなたはそうしない。そしてできない。定期的に['status'](http://ruby-doc.org/core-1.9.3/Thread.html#method-i-status)を呼び出すことでチェックできます。また、 'thread.join'は、スレッドが実行を開始した後に*どこでも*行くことができます。直後にする必要はありません。 –

+0

また、 'Thread.new'が実行しているコードの末尾に' puts'を実行するだけでもいいです... –

関連する問題