前田です。

# Reply-Toが設定されているようですが、意図されているのでしょうか?

In message "[ruby-list:6752] Re: Mutex/ConditionVariable/Queue"
senda / ic.rdc.ricoh.co.jp <senda / ic.rdc.ricoh.co.jp> wrote:

|shugo> |>今JavaでMutexとConditionVariableを作っているのですが
|
|JavaでConditionVariableがいる理由がわからないのですが。
|
|# つくってみたかっただけなのかな :-)

いえ、違います:-)

|Javaのsynchronized宣言/java.lang.object.wait()/java.lang.object.notify()
|はこのConditionVariableを隠蔽するための機構です(モニターと呼ばれる)。

これは知っています。
# というかMutex/ConditionVariableはJavaのモニタ機構を使って実装しています。
# JDKの次バージョンではThreadを直接止めることができなくなるようなので
# Javaのモニタ機構を使わないと実装できなくなるんじゃないかな。

fj.comp.parallelで話題になったので詳しくはそちらを見ていただけると
ありがたいのですが、Javaのsynchronized構文ではブロック構造になるの
で任意のスコープで排他制御を行えません。
また、Javaでは条件変数がリソースにつき一個ずつしか持てないことに
なるのですが、条件変数は各リソースではなく、条件の待ち方の個数に
対応します。
つまりリソースは一個でも条件変数が複数という場合がありうるのですが、
JavaだとnotifyAllですべてのスレッドを起こさないといけないことに
なります。

というわけでMutex/ConditionVariableが欲しい、という話になって
実装してみたわけです。

-- 
前田 修吾