Go言語による並行処理

[cover photo]
  • 2018年10月26日 発売予定
  • 256ページ
  • ISBN978-4-87311-846-8
  • フォーマット Print PDF ePub mobi
  • 原書: Concurrency in Go 

オライリー・ジャパンで書籍を購入:
定価3,024円


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

関連書籍

Go言語でつくるインタプリタ
Go言語によるWebアプリケーション開発
並行コンピューティング技法

訳者まえがき
序文

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 ジェネリクスについて

著者紹介

Feedback

皆さんのご意見をお聞かせください。ご購入いただいた書籍やオライリー・ジャパンへのご感想やご意見、ご提案などをお聞かせください。より良い書籍づくりやサービス改良のための参考にさせていただきます。
[feedbackページへ]