From: senda@... Date: 1998-05-29T16:36:48+09:00 Subject: [ruby-list:8126] Re: ruby-thread (Re: Re: ruby との出会い) せんだです。 matz> |ラベルつきブロックは痛いですね。Perlではcase文がわりに使われるので。 matz> |ラベルつきブロック+lastのパターンだけみつけて対応するとか。。。 matz> matz> 効率を気にしなければcatch/throwで実現できると思います. matz> matz> |私はあまり魅力的ではないと思います。現状ではthreadライブラリでSMPマシン上 matz> |のLWPが効率的に動く(threadとLWPが多対多の関係の2 levelモデル)のはSolarisだ matz> |けだし(認識不足?)、ソフトウエアthreadやCPUが1つしかない場合は言語処理系で matz> |threadをサポートしている場合(昔風にいうとco-routineかな)と効率は変わらない matz> |からです。 matz> matz> そーかぁ,そういうものなのね. matz> 少なくともFreeBSDやlinuxではLWPサポートとかそれに対応した満足できる thread libraryが出てくるのはまだまだ先の話じゃないかと思います。 matz> |pthread_attr_init()でthread属性として設定できるようです。 matz> matz> ええ,でも途中で変えられないし.今のスレッドの実装だとどんな matz> にスタックが伸びても適当にヒープにコピーしてくれるんですよね. matz> pthreadライブラリで勝手にやってくれるものもあります。 たとえばPTL(http://www.media.osaka-cu.ac.jp/~k-abe/PTL/)とかはOS依存でやっ ています。所詮、thread属性をちゃんと解釈するかどうかも実装依存だし。 matz> |処理系レベルのthreadを採用しているせいでrubyのthreadは組み込みメソッ matz> ドがす matz> |べてthread-safeに自動的になっています(だからArrayとかStringとかに関 matz> する操 matz> |作はすべてthread-safeでなんか直感に反してしまう)。もし、pthreadなど matz> 下のレ matz> |ベルでthreadを実現すると、こいつら(組み込みメソッド)にことごとく条 matz> 件変数で matz> |排他制御ブロックを突っ込まないと互換性が保たれなくなってしまいます。 matz> matz> あ,そうそう.thread-safeの話を忘れてました.これも懸念材料 matz> の一つだったのです. matz> まえのまえの文脈で「効率が変わらない」といったのは言い過ぎかもしれません。 threadライブラリの実装のカシコサによるし、 組み込み関数レベルでthread-safeにすると排他制御の単位は小さくなるので効率 は上がるはずですね。でも労力に見合うだけ上がるかどうかは。。。 matz> matz> |matz> |3. ruby reference card matz> |matz> | perlにあるようなやつです。これがあるとないとではプログラ matz> ム作りの大変 matz> |matz> | さがずいぶん変わってきます。 matz> |matz> matz> |matz> 文法だけだったら,一応あるのはあるんですね[ruby-list:3257]. matz> |matz> クラスについても含めたものはruby本の巻末につく予定です. matz> | matz> |わーい。 matz> matz> でも,まだ書いてないんですよ.;_; matz> ^_^ ^_^ ^_^ ^_^ ^_^ ^_^ matz> |# inf-ruby.elの新しいやつを次のbetaのsampleの下に含めてほしい matz> |# なっと。> まつもとさん matz> matz> 新しいやつって1.4ですよね.1.1b9_23には含まれていると思うん matz> ですが.なんか間違ってた? matz> う。すいません。1.1b9_23って出てたんですね。確認せずにいってすいません。 # ruby-devにはいったほうがいいかな。 # たまに http://blade.nagaokaut.ac.jp/ruby/ruby-dev/index.shtml で覗くだ # けで済ましていたんですが。 S.Senda