電子書籍の厳選無料作品が豊富!

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

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

一般的な効率の良い手段等あるのでしょうか?

A 回答 (2件)

joinメソッドでスレッドの終了を待つことができます。


参考URLを参照下さい。

参考URL:http://www.namaraii.com/rubytips/?%A5%B9%A5%EC%A …
    • good
    • 0
この回答へのお礼

スレッドt1
スレッドt2
t1.join
t2.join
main処理
という流れで処理できました。
こんなに簡単な方法があったんですね。
基本的なところでした。
解答ありがとうございました。

お礼日時:2008/04/04 23:32

スレッドが終了した時点で


メインに処理を移すのであればマルチスレッドにする必要は無いと思うのですが?

この回答への補足

各フェーズの処理に時間がかかり、しかしシステムのリソースがあまっているため、同時に実行させたいと思っていました。

補足日時:2008/04/04 23:29
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!