ようこそ ゲスト さん、新規登録(無料)して気になる疑問を解決しませんか?

質問

質問者:skip_jack マルチスレッド:スレッドの終了を検知する(Ruby)
困り度:
  • 暇なときにでも
2つ以上のスレッドを生成・動作させ、それらが終了した時点で、メインに処理を移すといったことをRubyでしたいと思っています。
(スレッドが1つならば、メインをstopさせておき、スレッドの終了時に例外処理などを使ってrunさせる方法は思いつくのですが。。)

一つ考えたのは・・・
カウンタ変数をつくり、一つのスレッドが終了したらその値を増やす。
メインではwhileループによってその値を常に数えて、全スレッドの終了を把握する。
ただ無駄にwhileループを回してしまいます。。

一般的な効率の良い手段等あるのでしょうか?
質問投稿日時:08/04/04 03:28
質問番号:3920600
この質問に対する回答は締め切られました。
最新から表示回答順に表示良回答のみ表示

回答

良回答20pt

回答者:tatsu99 joinメソッドでスレッドの終了を待つことができます。
参考URLを参照下さい。
種類:アドバイス
どんな人:一般人
自信:参考意見
回答日時:08/04/04 12:20
回答番号:No.2
参考URL: http://www.namaraii.com/rubytips/?%A5%B9%A5%EC%A5%C3%A5%C9
この回答へのお礼スレッドt1
スレッドt2
t1.join
t2.join
main処理
という流れで処理できました。
こんなに簡単な方法があったんですね。
基本的なところでした。
解答ありがとうございました。

回答

 

回答者:tetsumyi スレッドが終了した時点で
メインに処理を移すのであればマルチスレッドにする必要は無いと思うのですが?
種類:回答
どんな人:一般人
自信:参考意見
回答日時:08/04/04 08:41
回答番号:No.1
この回答への補足各フェーズの処理に時間がかかり、しかしシステムのリソースがあまっているため、同時に実行させたいと思っていました。
この回答へのお礼この回答にお礼をつける(質問者のみ)
 
最新から表示回答順に表示良回答のみ表示