Gos goroutines och channels möjliggör en uppsättning väletablerade concurrencymönster som löser vanliga problem — distribuera arbete, fläkta ut/in, pipelines och hastighetsbegränsning. Att känna till dessa idiomatiska mönster låter dig bygga korrekta, effektiva concurrenta system.
Worker pool — begränsad concurrency
{
wg sync.WaitGroup
w := ; w < numWorkers; w++ {
wg.Add()
{
wg.Done()
job := jobs {
results <- process(job)
}
}()
}
wg.Wait()
(results)
}
