Friday, 8 July 2011

Multicast Queue

Java で、複数のスレッドにメッセージを配りたくて、MulticastQueue ってあるだろ? って思ったんだけどないみたい。

で、学生とプロジェクタで書き始めたんですが、wait/notify で自分で書いても良くて、そういうのは OS の課題で出していたりするんだけど…

複数のBlockingQueueで書く方法と、linked list 自分で書いて、その上でCountDownLatchで同期する二つの方法を思い付いて書き始めました。

学生の方がCountDownLatchで、僕の方がBlockingQueue 。学生の方が先に動いたので、ちょっとくやしかったです。BlockingQueue は poll じゃなくて take なのね。あとで学生と飯食いながら直したら動きました。

BlockingQueue だと、接続が切れた時に BlockingQueue 削除しないといけないんだけど、CountDownLatch だと、そういうのは必要ないらしい。CountDownLatch かな〜

プロジェクタ上で学生に指示しながらプログラミングするのは結構面白い。

No comments: