From: matz@... (Yukihiro Matsumoto) Date: 1998-08-25T11:59:55+09:00 Subject: [ruby-list:9265] Re: thread overhead まつもと ゆきひろです In message "[ruby-list:9263] thread overhead" on 98/08/25, "D.Kanda" writes: | かんだです。 | Thread のオーバーヘッドについて質問があります。 Threadのオーバヘッドについては実は定量的な測定が行われたこと はないので,なんともいえない部分があるのですが,分かっている ことは以下のことです. * RubyのThreadはコンテキスト切り替え時にスタックの内容を全 部コピーしているので遅い.が,スクリプト言語として利用す るのに十分な速度は持っている(はず). * Threadの生成のためのコストは通常のオブジェクトを生成する コストと大差ない(はず).Rubyでは大量にオブジェクトを生成 するので,このコストが気になる人はRubyを使えないだろう. * 止まっているスレッドの数はコンテキスト切り替えがわずかに 遅くなるだけで,存在そのものが負担にはならない. * 生きているスレッドがたくさんあってもコンテキスト切り替え のコストはそれほど変わらない.スラッシングも起きない. | stop() して保存しておくのと、毎回新しいスレッドを生成するのとではどちら |が効率がよいのでしょうか? というわけで,私からの回答は「やってみないとわからない」とい うやや情けないものなんですが,多分,単純に毎回新しいスレッド を生成する方がプログラムの見通しが良くなるような気がします. まつもと ゆきひろ /:|)