スレッド

最近仕事関係でスレッドまわりを調べてます。スレッドプログラミングでやっちゃいけないことを知りたいのですが、
まずはスレッド自体の調査ということで以下の本を眺めてます。

Java並行処理プログラミング ―その「基盤」と「最新API」を究める―

Java並行処理プログラミング ―その「基盤」と「最新API」を究める―

以下も参考になるな。

で、思ったのは、
java.util.concurrentパッケージを使えば、結構すっきりかけるっぽい。waitとかnotifyとかが無くなる。

まあ現実問題としてスレッドを使ったプログラムを書くことってあんまり無いと思う。
APサーバを実装する人とかは別だろうけど、フレームワークの開発者もそんなにスレッド使わないような。

もちろんスレッドAPIを使って無くてもスレッドを意識しなきゃいけないことはある。例えばServletにフィールドを持っちゃ駄目とか。

業務でスレッドを使ったプログラムを書く状況で思いつくのはデーモンとかGUIかな。

業務でJavaGUIを書くのはあんまなさそうだけど、デーモンはSI案件で必要になりそう。

例えばユーザがブラウザでぽちっとボタンを押すとDBに1レコード挿入、デーモンが定期的にpollingしてランチャーを起動っていうの結構あると思う。
てかあった。。。

で、ちょっと思うのはSeasar関連プロダクトはこのあたりのものが無いと思う。s2chronosぐらいじゃないかな。

s2chronosのソース見てみるとconcurrentパッケージをバリバリ使っている。スレッドプールもある。今度見とこ。