Go言語による並行処理

3,080円
Ebook Storeで電子版を購入:
価格3,080円
カートに入れる

内容

シンプルな言語仕様と手厚い並行処理機能で多くのプログラマの心を捉えるGo言語。いまではサーバーサイドでのプログラミングやコンテナツールの実装言語など、さまざまな分野で活用されています。本書は、Goの並行処理の設計哲学、言語の機能、また実際のプログラミングテクニックや並行処理の使い方、システムに導入する際のベストプラクティスとパターン、その内部構造までを簡潔にまとめた書籍です。
普段からGoでプログラミングをしているプログラマや、並行処理について学習したいプログラマが、新たな知識を身につけるのに良い一冊となるでしょう。

本書のサポートリポジトリ

関連書籍

目次

訳者まえがき
序文

1章 並行処理入門
    1.1 ムーアの法則、Webスケール、そして私たちのいる混沌
    1.2 なぜ並行処理が難しいのか
        1.2.1 競合状態
        1.2.2 アトミック性
        1.2.3 メモリアクセス同期
        1.2.4 デッドロック、ライブロック、リソース枯渇
        1.2.5 並行処理の安全性を見極める
    1.3 複雑さを前にした簡潔さ

2章 並行性をどうモデル化するか:CSPとは何か
    2.1 並行性と並列性の違い
    2.2 CSPとは何か
    2.3 これがどう役に立つのか
    2.4 Goの並行処理における哲学

3章 Goにおける並行処理の構成要素
    3.1 ゴルーチン(goroutine)
    3.2 syncパッケージ
        3.2.1 WaitGroup
        3.2.2 MutexとRWMutex
        3.2.3 Cond
        3.2.4 Once
        3.2.5 Pool
    3.3 チャネル(channel)
    3.4 select文
    3.5 GOMAXPROCSレバー
    3.6 まとめ

4章 Goでの並行処理パターン
    4.1 拘束
    4.2 for-selectループ
    4.3 ゴルーチンリークを避ける
    4.4 orチャネル
    4.5 エラーハンドリング
    4.6 パイプライン
        4.6.1 パイプライン構築のためのベストプラクティス
        4.6.2 便利なジェネレーターをいくつか
    4.7 ファンアウト、ファンイン
    4.8 or-doneチャネル
    4.9 teeチャネル
    4.10 bridgeチャネル
    4.11 キュー
    4.12 contextパッケージ
    4.13 まとめ

5章 大規模開発での並行処理
    5.1 エラー伝播
    5.2 タイムアウトとキャンセル処理
    5.3 ハートビート
    5.4 複製されたリクエスト
    5.5 流量制限
    5.6 不健全なゴルーチンを直す
    5.7 まとめ

6章 ゴルーチンとGoランタイム
    6.1 ワークスティーリング
        6.1.1 タスクと継続、どちらを盗むのか
    6.2 すべての開発者にこの言葉を贈ります
    6.3 結論

補遺A    
    A.1 ゴルーチンのエラーの解剖
    A.2 競合状態の検出
    A.3 pprof
    A.4 trace

補遺B go generate
    B.1 空インターフェースの使用について
    B.2 go generateとは何か
    B.3 go generate の機能
    B.4 例: genny を利用する
    B.5 ジェネリクスについて

著者紹介

正誤表