けいじゅ@今はフリー(^^;;;です. In [ruby-list :03444 ] the message: "[ruby-list:3444] Re: [Q] Thread ", on Jul/25 00:18(JST) matz / netlab.co.jp (Yukihiro Matsumoto) writes: >|1. 組み込みの関数/メソッドはatomicか? > >その保証はありません. そうなんですくぁ? そうすると, 同じ資源にアクセスする可能性のある操作は排他制御する必要が あるってことになるんですか? でも, 同じ資源といってもそのメソッドが何に アクセスするかあまり明確ではないんですが... 例えば, eval "class Foo; def foo..." と eval "class Foo; def bar..." は排他制御する必要があるない? さらに, eval "class Foo; def foo..." と f = Foo.new f.bar はどう? # きっと内部的には, 同じハッシュ表(メソッドテーブル)をアクセスしている # と思いますが... それと, atomicでないとしても, 落ちない保証ぐらいは期待して良いんでしょ うか? 例えば, * 同じHashに同時に書き込んでも問題ないとか... * stdoutに同時に書き込んでも問題ないとか... どうなんでしょう... >|2. ユーザレベルライブラリ(**.rb)のスレッド対応 >|a. 一切対応は行わなくてよい. それを使う側がMutexなどを使って対応する. >|b. メソッドレベルのatomic性は保証するようにする. >|c. さらに高レベルな保証を行う. >| >|やはり, bぐらいは対応した方が良いのでは? とは思うのですが... >thread awareが必要なライブラリもありますが(たとえばtk),基本 >的にはaだと思っています. なるほど, そんなもんですかねえ... ところで, なぜ tkはthead awareなんで しょう? __ .........................................石塚 圭樹@今はフリー(^^;;... ------->>また, アドレス変わりました!! e-mail: keiju / bc.mbn.or.jp <<---