あらすじ
※この商品はタブレットなど大きいディスプレイを備えた端末で読むことに適しています。また、文字だけを拡大することや、文字列のハイライト、検索、辞書の参照、引用などの機能が使用できません。
Go言語の並行処理機能なら、直感的で把握しやすい!
複雑なテーマも多数の図と例でよりわかりやすく段階的に解説。
並行処理の原理とベストプラクティスを習得できる。
より高速なプログラムが書きたい開発者に最適の書。
並行処理を導入することで、多数のアプリケーションの
パフォーマンスと応答性を向上させることができます。
【本書を読めば、次のことを理解・実践できるようになります】
-----
◆反応性が高く高性能でスケーラブルなソフトウェアを作成できるようになる
◆並行処理の利点・制限・特性を理解できるようになる
◆メモリ共有とメッセージパッシングを区別できるようになる
◆ゴルーチン、ミューテックス、リーダー/ライターロック、ウェイトグループ、
チャネル、条件変数を利用できるようになる
◆並行処理で注意すべき典型的なエラーを特定できるようになる
◆より高度なマルチスレッディングでプログラミングのスキルアップが図れる
-----
本書では、Goの構文と機能を説明することに焦点を当てているわけではなく、
Go言語を使って並行処理の原則と技術を解説しています。
これらの技術のほとんどは他の言語にも適用することができます。
※ 本書は『Learn Concurrent Programming with Go』(Manning Publications)の翻訳書です。
※ 本書では何らかのプログラミング言語の使用経験があることを前提としています(Go言語かC言語系の使用経験があれば本書の理想的な読者です)。
感情タグBEST3
Posted by ブクログ
本書は、Goの並行処理を「概念→実装→パターン→落とし穴」の流れで系統立てて掴める良書という印象でした。序盤はCSP思想やアムダール/グスタフソンの法則を押さえ、なぜGoがゴルーチンとチャネルを中核に据えるのかを腹落ちさせます。続く章で、OS/ユーザースレッドとM:Nスケジューリング、LRQ/GRQやワークスティーリングまで踏み込むため、ブラックボックスだった実行時の挙動が見える化され、設計判断の根拠が増えます。共有メモリの競合・ハイゼンバグから出発して、Mutex/RWMutex、Cond、セマフォ、WaitGroup/バリアと段階的に同期原語を学び、目的別にどう使い分けるべきかが明瞭です。チャネルとselectは、クローズ、方向制限、バッファ、タイムアウト、nilチャネルなど実務で必要な作法が網羅され、CSPパターン(パイプライン、ファンイン/アウト、quitチャネル、ブロードキャスト)も具体的です。さらに、分解戦略やワーカープール、フォーク/ジョイン、パイプライン最適化といったパフォーマンス志向の視点が実装に橋を架けます。デッドロックはCoffmanの4条件、RAG、銀行家のアルゴリズムまで扱い、チャネルでも循環待ちが起こるという“Goならでは”の注意点を明示。終盤のアトミックやスピンロック、Mutex内部のセマフォ実装への言及は、低レイヤの理解を補強し、いたずらな最適化や誤用を戒めます。総じて、基礎理論からランタイム、言語機能、設計パターン、アンチパターンまで縦断的に学べるため、Goで並行処理を本気で身につけたい読者に強く勧められる内容です。実装時の指針が増え、トレードオフを自分で評価する力が確実に養われます。