Re: Multithread and event driven
新城@筑波大学情報です。こんにちは。
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 は、現在どんな感じかなあ。
\\ 新城 靖 (しんじょう やすし) \\
\\ 筑波大学 電子・情報 \\
Fnews-brouse 1.9(20180406) -- by Mizuno, MWE <mwe@ccsf.jp>
GnuPG Key ID = ECC8A735
GnuPG Key fingerprint = 9BE6 B9E9 55A5 A499 CD51 946E 9BDC 7870 ECC8 A735