スレッド
最近仕事関係でスレッドまわりを調べてます。スレッドプログラミングでやっちゃいけないことを知りたいのですが、
まずはスレッド自体の調査ということで以下の本を眺めてます。
増補改訂版 Java言語で学ぶデザインパターン入門 マルチスレッド編
- 作者: 結城浩
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 2006/03/21
- メディア: 大型本
- 購入: 15人 クリック: 287回
- この商品を含むブログ (206件) を見る
Java並行処理プログラミング ―その「基盤」と「最新API」を究める―
- 作者: Brian Goetz,Joshua Bloch,Doug Lea
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 2006/11/22
- メディア: 単行本
- 購入: 30人 クリック: 442回
- この商品を含むブログ (174件) を見る
以下も参考になるな。
で、思ったのは、
java.util.concurrentパッケージを使えば、結構すっきりかけるっぽい。waitとかnotifyとかが無くなる。
まあ現実問題としてスレッドを使ったプログラムを書くことってあんまり無いと思う。
APサーバを実装する人とかは別だろうけど、フレームワークの開発者もそんなにスレッド使わないような。
もちろんスレッドAPIを使って無くてもスレッドを意識しなきゃいけないことはある。例えばServletにフィールドを持っちゃ駄目とか。
業務でスレッドを使ったプログラムを書く状況で思いつくのはデーモンとかGUIかな。
業務でJavaのGUIを書くのはあんまなさそうだけど、デーモンはSI案件で必要になりそう。
例えばユーザがブラウザでぽちっとボタンを押すとDBに1レコード挿入、デーモンが定期的にpollingしてランチャーを起動っていうの結構あると思う。
てかあった。。。
で、ちょっと思うのはSeasar関連プロダクトはこのあたりのものが無いと思う。s2chronosぐらいじゃないかな。
s2chronosのソース見てみるとconcurrentパッケージをバリバリ使っている。スレッドプールもある。今度見とこ。