新城@筑波大学情報です。こんにちは。

In article <3988736news.pl@insigna.ie.u-ryukyu.ac.jp>
        kono@ie.u-ryukyu.ac.jp (Shinji KONO) writes:
> > 並行オブジェクト指向みたいに、1オブジェクト1スレッドにして、
> > イベントはスレッドが好きな時に取りに行くようにすれば、どうで
> > しょうか。
> 
> そんなに嫌いじゃないんですけどね。実際やってみると、オブジェ
> クト単位で低レベルの並列制御をするようになっちゃうんだよな。
> Bounded Buffer とか Condition Variable とかを書いてみようと
> すると、そんなことになります。オブジェクトとかメッセージとか
> に順序が入ってないのでDead Lockしまくるし。

バッファをオブジェクトで書く所に問題があるんじゃないですか。
それは、システムで用意することにして。もちろん、システム作る
人には、ガリガリがんばってもらうことにして、残りの95%くら
いの人は楽をすると。

人間は、なかなかデッドロックはしないからね。何なんでしょうね。
マルチスレッドは、ななかできないけれど。

> > シングルスレッドにして同期を「書かない」と同期の抽象化をあげ
> > るは、ちょっと違うかなあ。
> 
> シングルスレッドは、同期をかかないんじゃなくて、同期以外のも
> のを書いているんでしょ? 同期は同期で、thread of control とか
> compuational data flow とかとは別なものを書いているんだよね。

同期にも、データフローの待ちみたいなものなら、Unix のパイプ
みたいにすれば、書かなくても平気になります。lock-unlock のよ
うに、処理の都合で入れる同期は、なんかかっこいい抽象化があれ
ば、かなり消せるはずです。

lock-unlock を消した例としては、Linda があります。
Japa Spaces は、現在どんな感じかなあ。

\\ 新城 靖 (しんじょう やすし) \\
\\ 筑波大学 電子・情報       \\