開発メモ

開発関係のメモをいろいろと。たぶん。

増補改訂版 Java言語で学ぶデザインパターン入門 【マルチスレッド編】

増補改訂版 Java言語で学ぶデザインパターン入門 【マルチスレッド編】

増補改訂版 Java言語で学ぶデザインパターン入門【マルチスレッド編】_a

種類 情報
著者 結城浩
発行日 2006年3月31日 初版発行
2012年1月10日 第7刷発行
発行 ソフトバンク・クリエイティブ

感想

Java言語でマルチスレッド関係のいろんな話をまとめた本。ただ・・・ タイトルに「デザインパターン入門」って入ってるけど、【マルチスレッド編】とかつけてる時点で、入門でもなんでもない気が。

そもそも、デザインパターンってのはプログラムを組んでてよく出てくる問題に対処するための定番の処理のはずなんだけど、それを、いちいち細かく分けることに意味があるんだろうか? そんなことを言い出したら、プログラム単位で細かい実装は変わってくるんだが。

めったに使われないような処理を持ちだして「これは○○パターンだ」って言っちゃうのは、ただの自己満足の世界なんじゃないかなぁ。そんなことをしても、周りの人間はだれも幸せにならないよ。そんなことやってる暇があったら、確実に動くソースをパブリックドメインで公開すればいいのに。

ページ数は山ほどあるけど、結局、役に立つのは「第1章 Single Threaded Execution」、「第5章 Producer-Consumer」、「第8章 Worker Thread」の3つぐらい? 同じパターンのバリエーションみたいな説明で、ページ数使いすぎ。しかも、1章と3章は基本的すぎていちいち説明するほどでも無いような内容だったり。そう考えると、この本の存在意義自体が疑問。

マルチスレッドの処理はなんとなくこなしてるけど、いまいちよく理解できてない人向け・・・ かなぁ? この本を読んで内容がちゃんと理解できるような人は、紙と鉛筆を使ってじっくり考えれば、同じ事を思いつくことが出来そうなものだが。

説明自体は分かりやすいし悪くない。ただ、そもそもの内容が疑問。ムダに多い付録も疑問。かなり高い本だし、買う前に、ちゃんと目を通してじっくり考えるべき。図書館に入れさせて、貸し出すのが理想かも。

おすすめ指数:☆☆☆+

(2013/08/12 読了)

章別の感想

第1章 Single Threaded Execution

マルチ処理を拒否してマルチスレッドを安全に動かす。基本中の基本。

第2章 Immutable

不変オブジェクトなら、どんなタイミングでアクセスされても大丈夫。不変オブジェクトが使えない場合もよくあるわけだが。

第3章 Guarded Suspension

結局は第1章と同じ。条件が満たされるまで待つパターン。

第4章 Balking

これも、第1章と意味的には大差なし。条件が満たされて無ければ諦めるパターン。

第5章 Producer-Consumer

マルチスレッド処理の王道。というか、これさえ理解してれば十分かも?

第6章 Read-Write Lock

読む方はマルチ処理可能だけど、書くときは要注意。当たり前の話。

第7章 Thread-Per-Message

新しいスレッドに新しい処理をやらせるだけ。

第8章 Worker Thread

作業を別スレッドでやらせるだけ。

第9章 Future

紐付きのThread-Per-Messageパターン? これ、わざわざ別パターン扱いする必要があるのか?

第10章 Two-Phase Termination

処理に応じて必要になる。当たり前の事。

第11章 Thread-Specific Storge

スレッドローカルの記憶域の話。基本。

第12章 Active Object

Thread-Per-Messageと大差なし。

まとめ

この章だけ読めば十分かも?

付録

練習問題の解答でこんなにページを使う必要が有るのか? そもそも、解答の所で詳しい説明をするって、練習問題とは呼ばないのでは?