Goovi goroutini in kanali omogočajo nabor dobro uveljavljenih vzorcev za sočasnost, ki rešavajo pogoste težave — razdeljevanje dela, razpršitev/zbiranje, cevovodi in omejitev hitrosti. Poznavanje teh idiomatskih vzorcev vam omogoča gradnjo pravilnih in učinkovitih sočasnih sistemov.
Bazen delavcev — omejena sočasnost
{
wg sync.WaitGroup
w := ; w < numWorkers; w++ {
wg.Add()
{
wg.Done()
job := jobs {
results <- process(job)
}
}()
}
wg.Wait()
(results)
}
