GGG

プログラミング言語やソフトウェア開発について思ったことを書いてます

【書籍感想】デザインパターン(マルチスレッド編)

 

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

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

 

購入の経緯

お仕事で開発中のシステムにおいてマルチスレッド関連で重篤な不具合が発生。

それの対応に知識不足感があった。

読み終わるまでの時間

1か月

※購入後、途中まで読んでストップ。一年後に再度トライし、読み終わった。

紹介

本書は、12種類のマルチスレッド・デザインパターンを紹介しています。

デザインパターンというのは設計手法のようなものです。

こんなことがやりたい! という要求があった場合に

こうやって実現できる! という設計図(および考え方)です。

 

マルチスレッドを自分で設計しないといけないんだけど、どう設計すればいいかよくわからない方にはお勧めかと思います。どういったデザイン・パターンがあるのかを知ることで皆さんの視野が広がる可能性があります。

 

デザインパターン名称および、それが役立つ状況、利用する場合に発生する制約(あるいはデメリット)を理解することが重要です。作った後に保守が大変になってしまうのはよくないです。

読み方としては、前から順次読み進めるのがオススメ。

前半部に基本的なパターンが紹介されており、後半になるとそれらを組み合わせた別のパターンが紹介されているためです。

図解が豊富なためUMLが分かれば読み進めやすいです。



姉妹書として

デザインパターン本を副読本としてお勧めします。

各マルチスレッド・デザインパターンを紹介・説明するにあたり

前述のデザインパターン本で紹介されているいくつかのパターンを使っています。

よりよく理解するためにこちらもいかがでしょうか。

増補改訂版Java言語で学ぶデザインパターン入門

増補改訂版Java言語で学ぶデザインパターン入門

 

メモ

「このメソッドはどのスレッドで実行されているか?」

「この排他制御は何を守っているのか?」

これを意識しながらコードを読んだりすると、把握しやすくなる。

 

 下記の2パターンは要チェックかな。

・Producer-Consumer パターン

  → Actor モデル

・Worker-Thread パターン

      →  別称(Pool-Threadなど)