Go's goroutines og channels muliggør et sæt af veletablerede concurrency-mønstre, som løser almindelige problemer — distribuering af arbejde, fan-out/in, pipelines og rate limiting. At kende disse idiomatiske mønstre gør det muligt for dig at bygge korrekte, effektive concurrent systemer.
Worker pool — begrænset concurrency
{
wg sync.WaitGroup
w := ; w < numWorkers; w++ {
wg.Add()
{
wg.Done()
job := jobs {
results <- process(job)
}
}()
}
wg.Wait()
(results)
}
