Go:n goroutinet ja kanavat mahdollistavat joukon hyväksi vakiintuneita concurrency-kuvioita, jotka ratkaisevat yleisiä ongelmia — työn jakamisen, fan-out/in:n, pipelineen ja rate limitingin. Näiden idiomatikanttiisten kuvioiden tunteminen antaa sinulle mahdollisuuden rakentaa oikeita ja tehokkaita rinnakkaisia järjestelmiä.
Worker pool — rajoitettu concurrency
{
wg sync.WaitGroup
w := ; w < numWorkers; w++ {
wg.Add()
{
wg.Done()
job := jobs {
results <- process(job)
}
}()
}
wg.Wait()
(results)
}
