2012-03-08 50 views
1

基本上我想知道什麼時候由Thread.new創建的線程退出並放了一行之後。我怎麼做?在Thread.new後面打印出一行Ruby中的退出

+0

我不知道怎麼辦。我正在研究一個項目,該項目產生了一個使用小馬發送電子郵件的新線程。但是在我添加這個函數之後,這個項目開始繪製大量的CPU資源。所以我想知道如果產生的線程從未真正退出。感謝您能否提供幫助。 – revolver 2012-03-08 04:32:02

回答

0

您可以使用Thread.join阻塞,直到線程終止:

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

Thread.join阻塞原始線程,直到生成的線程終止?如果我希望兩個線程同時運行,該怎麼辦? – revolver 2012-03-08 05:54:32

+0

如果它同時運行,怎麼知道它何時終止?你沒有。而不能。如果這是你想要的,你可以定期檢查['status'](http://ruby-doc.org/core-1.9.3/Thread.html#method-i-status)。此外,線程開始執行後'thread.join'可以在任何地方*。它不一定是在之後。 – 2012-03-08 06:00:07

+0

另外,你可以在'Thread.new'的代碼末尾執行'puts' ... – 2012-03-08 06:00:41