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