From: shugo@... (Shugo Maeda) Date: 1998-02-25T18:27:16+09:00 Subject: [ruby-list:6766] Re: Mutex/ConditionVariable/Queue 前田です。 In message "[ruby-list:6756] Re: Mutex/ConditionVariable/Queue" senda@ic.rdc.ricoh.co.jp wrote: |shugo> Javaのsynchronized構文ではブロック構造になるの |shugo> で任意のスコープで排他制御を行えません。 | |これはあんまり強い制限ではないとはおもいますが(排他制御を行う部分を |synchronized methodにしてやればよい)、 排他制御するスコープが一つのメソッドに収まればよいのですが、 例えばメソッドfooを呼び出したらメソッドbarを呼び出すまでは 排他制御したい、というケース(つまり複数のメソッドに渡って 排他制御したいケース)も一応あると思います。 # めったにそういうことはしないと思いますが。 |shugo> というわけでMutex/ConditionVariableが欲しい、という話になって |shugo> 実装してみたわけです。 |shugo> | |ただ、モニタ機構は素人にとっては使いやすい機構だといえます。個人的経験では |排他制御の8ー9割は単にmutex(synchronized)を書くだけだし、条件変数を使う |場合でもそんなに複雑なことをしたおぼえはありません(そんなことはないという |人は当然いるとは思いますが)。 そうですね、synchronizedで十分という場合の方が多いかもしれません。 |ただこいつらがプリミティブでないとするとスレッドのスケジューリングはどうな |っているのかなという疑問がでてくるのですが。 :-) Rubyのスレッドは全部同じ優先度で均等に実行される(ですよね?)ので 多分問題ないと思うのですが、実際のところどうなんでしょう。 -- 前田 修吾