Le goroutine e i channel di Go abilitano una serie di modelli di concorrenza ben consolidati che risolvono problemi comuni — distribuzione del lavoro, fan-out/fan-in, pipeline e rate limiting. Conoscere questi modelli idiomatici ti permette di costruire sistemi concorrenti corretti ed efficienti.
Perché è importante
{
wg sync.WaitGroup
w := ; w < numWorkers; w++ {
wg.Add()
{
wg.Done()
job := jobs {
results <- process(job)
}
}()
}
wg.Wait()
(results)
}
