From: Masatoshi SEKI Date: 2000-10-06T01:29:35+09:00 Subject: [ruby-list:25328] Re: synchronization mechanism 咳といいます。 > > > MINIX のカーネル内のメッセージとかどうかなっと思ってましたが > > > うまく考えがまとまらない…。 > > > > これってどんなものでしょうか? > 当てずっぽうですけど,ふつうの message passing 機構じゃないでしょうか. > 各スレッドが mail box を持っていて,メッセージのやりとりで同期するって > いう.メッセージが来てなければ待つし,待ってる所にメッセージが来たら起 > きる.Queue でオブジェクトをやりとりするのと,ようは同じでしょう. いま手元に教科書がないのでちょっとあやふやです。 ふつうのメッセージパッシングです。ただ、間に Queue があるのではなくて、 二つの primitive、send/recv があってどちらを呼んでも停止して、 もう一方が呼ばれたとき (二人が会えたとき) にどちらも runnable になると いうものです。 両者はいつも待ち合わせる。単純でCで実装しやすそうでした。 # なんでこれにしようか思ってたのか、思い出せない。 # きっとなにかあったはずなのに…。 > ....っていうことで,本当にコストが問題なのでなければ今の Mutex,Queue > っていうので primitive としては十分だと思わなくもないんですが.割と基 > 本的な同期機構で後無いのは Barrier くらいでは.Monitor もあるし, > reader/writer lock も提供している Sync もあることだし. コストを問題にしているのだと思います。 今、どれも Thread#critical で実装されてますが、これでちゃんとしたの 書こうとするとめんどくさいです。(そうでもない??) なんか primitive 欲しい。