Goroutines și canalele Go activează un set bine stabilit de modele de concurență care rezolvă probleme obișnuite — distribuirea muncii, fan-out/fan-in, pipelines și rate limiting. Cunoașterea acestor modele idiomatice te permite să construiești sisteme concurente corecte și eficiente.
Worker pool — bounded concurrency
{
wg sync.WaitGroup
w := ; w < numWorkers; w++ {
wg.Add()
{
wg.Done()
job := jobs {
results <- process(job)
}
}()
}
wg.Wait()
(results)
}
