Kirill Bobrov 原著
株式会社クイープ 翻訳
本書は
Kirill Bobrov, "Grokking Concurrency", Manning Publishing, 2023
の邦訳です。
現代的なアプリにふさわしい高パフォーマンスのコードを書くためには、並行処理の理解が不可欠です。Webアプリ、IoTシステム、ビッグデータ処理など、並行処理はあらゆる局面で活用されていますが、そこには初学者が中心的に学ぶ「逐次実行を前提にしたプログラム」ではどうしても理解できない複雑な概念や特徴があります。それらをきちんと押さえることで、暴走せずにパフォーマンスを高める並行処理を手に入れることができるのです。
本書ではその核となる概念が徹底的に説明されており、楽しくわかりやすい文章と興味深いイラストで、洞察力に富んだ例や、独自のプロジェクトに適用できる詳細なテクニックが解説されています。本書を読めば、並行処理、非同期性の中心となる概念やさまざまなハードウェアアーキテクチャの長所と短所が理解でき、スケーラブルな並行処理システムの作成と実装を目指すことができるはずです。
◆◆◆目次◆◆◆
Part 1 タコのオーケストラ:並行処理の交響曲
Chapter 1 並行処理
Chapter 2 直列実行と並列実行
Chapter 3 コンピュータの仕組み
Chapter 4 並行処理の構成要素
Chapter 5 プロセス間通信
Part 2 並行処理の3本の触手:マルチタスク、分解、同期
Chapter 6 マルチタスク
Chapter 7 分解
Chapter 8 並行処理問題の解決:競合状態と同期
Chapter 9 並行処理問題の解決:デッドロックと飢餓状態
Part 3 非同期のタコ:並行処理でピザを作ろう
Chapter 10 ノンブロッキングI/O
Chapter 11 イベントベースの並行処理
Chapter 12 非同期通信
Chapter 13 並行処理アプリケーションを作成する
Part 1 タコのオーケストラ:並行処理の交響曲
Chapter 1 並行処理
1.1 並行処理はなぜ重要か
1.2 並行処理の階層
1.3 本書から何を学べるか
1.4 本章のまとめ
Chapter 2 直列実行と並列実行
2.1 復習:プログラムとは何か
2.2 直列実行
2.3 逐次実行
2.4 並列実行
2.5 並列コンピューティングの要件
2.6 並列コンピューティング
2.7 アムダールの法則
2.8 グスタフソンの法則
2.9 並列性と並行性
2.10 本章のまとめ
Chapter 3 コンピュータの仕組み
3.1 プロセッサ
3.2 ランタイムシステム
3.3 コンピュータシステムの設計
3.4 さまざまなレベルの並列ハードウェア
3.5 本章のまとめ
Chapter 4 並行処理の構成要素
4.1 並行処理プログラミングのステップ
4.2 プロセス
4.3 スレッド
4.4 本章のまとめ
Chapter 5 プロセス間通信
5.1 通信の種類
5.2 Thread Poolパターン
5.3 パスワードの解読
5.4 本章のまとめ
Part 2 並行処理の3本の触手:マルチタスク、分解、同期
Chapter 6 マルチタスク
6.1 CPUバウンドとI/Oバウンドのアプリケーション
6.2 マルチタスクが必要
6.3 速習:マルチタスク
6.4 マルチタスク環境
6.5 本章のまとめ
Chapter 7 分解
7.1 依存関係の分析
7.2 タスク分解
7.3 タスク分解:Pipeline パターン
7.4 データ分解
7.5 粒度
7.6 本章のまとめ
Chapter 8 並行処理問題の解決:競合状態と同期
8.1 共有リソース
8.2 競合状態
8.3 同期
8.4 本章のまとめ
Chapter 9 並行処理問題の解決:デッドロックと飢餓状態
9.1 食事をする哲学者
9.2 デッドロック
9.3 ライブロック
9.4 飢餓状態
9.5 同期を設計する
9.6 最後に
9.7 本章のまとめ
Part 3 非同期のタコ:並行処理でピザを作ろう
Chapter 10 ノンブロッキングI/O
10.1 分散化された世界
10.2 クライアント/サーバーモデル
10.3 ピザ注文サービス
10.4 ブロッキングI/O
10.5 ノンブロッキングI/O
10.6 本章のまとめ
Chapter 11 イベントベースの並行処理
11.1 イベント
11.2 コールバック
11.3 イベントループ
11.4 I/Oの多様化
11.5 イベント駆動型のピザサーバー
11.6 Reactorパターン
11.7 メッセージパッシングでの同期
11.8 I/Oモデル
11.9 本章のまとめ
Chapter 12 非同期通信
12.1 非同期が必要
12.2 非同期プロシージャ呼び出し
12.3 協調的マルチタスク
12.4 Futureオブジェクト
12.5 協調的ピザサーバー
12.6 非同期ピザレストラン
12.7 非同期モデルに関するまとめ
12.8 本章のまとめ
Chapter 13 並行処理アプリケーションを作成する
13.1 結局のところ、並行処理とは何か
13.2 Foster の方法論
13.3 行列の乗算
13.4 分散ワードカウント
13.5 本章のまとめ
内容についてのお問い合わせは、正誤表、追加情報をご確認後に、お送りいただくようお願いいたします。
正誤表、追加情報に掲載されていない書籍内容へのお問い合わせや
その他書籍に関するお問い合わせは、書籍のお問い合わせフォームからお送りください。
本書の書影(表紙画像)をご利用になりたい場合は書影許諾申請フォームから申請をお願いいたします。
書影(表紙画像)以外のご利用については、こちらからお問い合わせください。