TL;DR
- Go の並行処理機能を題材に、並行プログラミングの原理とベストプラクティスを解説する本である。
- メモリ共有による同期、メッセージパッシング、デッドロックやアトミック操作などの発展的な話題の 3 部で構成される。
- 『Learn Concurrent Programming with Go』の翻訳書である。
対象読者
より高速なプログラムを書きたい開発者向けの本である。Go か C 系言語の基礎知識を前提としている。
公式のサンプルコードは cutajarj/ConcurrentProgrammingWithGo にある。自分で手を動かした記録は radish-miyazaki/ConcurrentProgrammingWithGo に置いている。
目次
Part 1 並行プログラミングの基礎
- 並行プログラミングへの第一歩
- スレッドを扱う
- メモリ共有を使ったスレッド間通信
- ミューテックスを使った同期
- 条件変数とセマフォ
- ウェイトグループとバリアを使った同期
Part 2 メッセージパッシング
- メッセージパッシングを使った通信
- チャネルをセレクト
- チャネルを使ったプログラミング
Part 3 並行処理のさらなるトピック
- 並行処理パターン
- デッドロックを回避
- アトミック、スピンロック、フューテックス
章を決めずに書いたメモ: