Go の goroutine とチャネルは、一般的な問題を解決する確立された並行処理パターンのセットを実現しています。仕事の分散、ファンアウト/ファンイン、パイプライン、レート制限などです。これらのイディオマティックなパターンを知ることで、正確で効率的な並行システムを構築できます。
なぜ重要なのか
{
wg sync.WaitGroup
w := ; w < numWorkers; w++ {
wg.Add()
{
wg.Done()
job := jobs {
results <- process(job)
}
}()
}
wg.Wait()
(results)
}
