松尾です。 # 出てこれなくて済まんです。ちょっと忙しくて…。 今のスレッドのあり方に、多少なりとも(僕のとは異なるかもしれませんが)疑 問、違和感がありうる事が分かっただけでも収穫です。 -- もしこれからも議論が続くのなら、スレッドの参照を明示的に持っておかない とGCされる、という僕の最初の話は一旦忘れて頂けないでしょうか? 見てる所、 一方はスレッドのあり方の話をしたいのに、一方はGCされる実装について不便 な点を語ろうとしているような。 僕が書いたのは、最も初歩の提案の一つに過ぎないんです。 From: Jun Adachi <adachi / tpegasus.lab.okidata.co.jp> > そこで、オブジェクトを拡張して制御も含んだものを『オブジェクト』とみな > したい。そのための一番てっ取り速い方法として、Threadをその『オブジェク > ト』を入れる仮の器とみなしてプログラムを試みた。その結果、一時的な『オ > ブジェクト』に関して、 これは1オブジェクト1スレッドなモデル? 確かにそれが単純で分かりやすいし、 実際好きなんですが > > # どんどんnewしてどんどん使い捨てていきたいのです. > という発想になっている。 と関連しているかどうか、自分では不明です_o_ なんとなく相関が有りそうで はあります。 From: "NAKAMURA, Hiroshi" <nakahiro / sarion.co.jp> > スレッドオブジェクトは, > 「スレッドコンテキスト切り替え屋さん」が参照してるから, > いけね,紐付けしてるから,GC屋さんに削除されない > ってのはどうでしょ.^^; ええ。とにかく誰かが紐の端を握ってるから、という解釈なら歓迎です。で、 その「誰」が「切替え屋さん」でいいの? 誰なら一番奇麗なの? みたいな疑問。 > オブジェクトのライフタイムは, > そのオブジェクトを生成したスレッド(が実行するコード)に依存するので, > 「Rubyのスレッドには親子関係がない(main thread対その他,を除く)」 > という設計と対立しちゃいますね... 例の「どのスレッドがシグナルを受け取るのか」って問題ですよね(解決済み だっけ?)。これも親子関係を入れればいいんじゃない? 子が受け取ったシグナ ルは処理されるまで親に。更に親が死ねば子が死ぬ、親子関係がルートから辿 れなければ死ぬ、とか。 # これだとスレッドの紐は親スレッドが握ってるようなイメージ。あ、双方向 # 必要だ。 > 変更によるメリットが感じられるコード例とかありますでしょうか. > ちょっと考えたんですが,思い付きませんでした... シグナルの話も一緒に解決できたら、嬉しいかも。