Go並行処理の要点を1冊に凝縮、動くサンプルで学ぶ
Go Concurrency Distilled

Goの並行処理を短時間で復習できるミニブック。goroutine、channel、select、pipeline、context、WaitGroup、data race、mutex、atomic、テスト、スケジューリング、診断まで全19トピックを網羅し、各トピックにブラウザで書き換えて実行できるインタラクティブな例を用意。PDF版もあり、AIを使わずに書かれている。
これはGo並行処理のクイックリフレッシャーであり、初心者向けガイドではない。
HNでの議論
55- voidfunc
Goを10年以上書いているけど、未だにチャネルを完全に「理解」できた気がしない。使うたびにマニュアルを参照しなきゃいけないし、どのパターンも自明に感じられない。言語の他の部分はすごく自明に感じられるのに、これは奇妙だ。
JavaでThreadやRunnableを管理していた年月が長すぎて、脳が腐ったんだろうな。
- SamInTheShell
Goの並行処理とスレッディングは、他のどの言語と比べても魔法のように感じる。私はgoroutine中毒で、更生するつもりはない。
長年の観察から言えるのは、物事がどのスレッドで起きるかという点で、これに似た言語は他にないということだ。
- phplovesong
Goの並行処理は本当に優れている。現存する中でも最高のものの一つだ。非同期/awaitを備えた言語もあるが(たいてい酷い)、まったく何もない言語もある(phpのように)。
- Segv77
Goの並行処理は表面的には単純に見えるが、selectと適切なエラーハンドリングをマスターするには練習が必要だ。このトピックがまとめられているのを見るのは良いことだ。
- kccqzy
多くの人にとって、何をすべきかを学ぶこと以上に、Goでやってはいけないアンチパターンや避けるべきことを読む方が役立つ。そしてGoのデータ競合パターンに関するこの記事に勝るものはない:https://www.uber.com/us/en/blog/data-race-patterns-in-go/