ぼうメモ帳

2003-11-10 最近は研究用ツールの開発をもっぱらしてます

Javaのスレッドについて

| Javaのスレッドについてを含むブックマーク

最近は、研究用のツール開発を主に行っています。簡易モデルシミュレータとその表示系です。で、現在はモデルシミュレータの拡張を行っています。

モデルシミュレータはThreadを使った並列処理をベースに動いています。各々のモデルオブジェクトが並列に相互作用しながら動くというものです。まあ、本来はThreadなんていう怪しいものではなくて、きちんとシミュレーションモデルを定義して並列処理させるべきなんですが、そのあたりが簡易モデルシミュレータである所以です。

それで、どうしてもThreadを止めて終了させなければならなくなりました。また、ある任意の地点で止められたコードから、前回の状態を継続して状態で、任意の時刻に再開できるようにもしなければなりません。このあたりはwait/notifyでなんとかできます。いままでも何とかそれでしのいできました。

しかし、いまもっと細かく制御しなければならない事態に陥っています。すなわち、どのスレッドだけを起こすとか、ある条件が満たされているときにのみ起こすとか、うんだくんだという感じです。とうわけで、スレッドの細かい制御を行いたいわけです。

で、scheme等にあるcall/ccがJavaにないかと調べ始めました。こいつをThreadから得ることができたら、つまらないwait/notifyの大量生成から開放されます。必要な継続オブジェクトを見つけて、そいつを再開するだけですから。

しかし、ありません。いくら探してもありません。ということで、これから恐怖のwait/notify嵐に突入しようかと思います。

言語変えようかなあ…

トラックバック - http://d.hatena.ne.jp/susumu/20031110
256869