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

これもHead First Design Patternsを読んだ動機と同じく、CourseraのAndroidのコースJava並行処理プログラミング ―その「基盤」と「最新API」を究める―が推薦図書に入っていたことから、その前に読む本として勧められているこの本を読んでみました。

僕は記憶力が弱くて、覚えたつもりのことをすぐ忘れてしまうのですが、この本では章の頭にある図と例え話がすごく役に立ちました。
各章の終わりに、関連するパターンとして他の章のパターンがリストされているのですが、名前だけを見ても「どんなパターンだったっけ…?」となることが多いのです。しかし、章の頭にある絵と例え話を読み直すことで、「ああ、あのパターンか」と思い出すことができました。Producer-Consumerパターンだったら「ケーキを作るコックとお客のやつね」といった具合です。

説明が丁寧で、解りやすい本なのですが、欠点を挙げるとすれば、java.util.concurrentについては補足でおまけ程度にしか取り上げられていないことでしょうか。もう少し掘り下げて書いて欲しかったかなと思います。僕の理解力が足りないのかもしれないですが、Executorの使い方とか未だによく解っていないです。

あと感想として、並行処理のデバッグはすごく大変そうという匂いが、写経しているだけでもぷんぷんしました。これを実務でやるとなると相当な経験が要求されそうな感じがします。この本に書かれているように、synchronizedなどを使う時にそれが何を守っているかといったことを、きちんと把握してコードを書くことが求められるのだろうなと思いました。