質問 |
||
| 質問者: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 |
|
| この回答への補足 | 各フェーズの処理に時間がかかり、しかしシステムのリソースがあまっているため、同時に実行させたいと思っていました。 |
| この回答へのお礼 | この回答にお礼をつける(質問者のみ) |