Les goroutines et les channels de Go permettent un ensemble de patterns de concurrence bien établis qui résolvent des problèmes courants — distribuer le travail, fan-out/fan-in, pipelines et rate limiting. Connaître ces patterns idiomatiques vous permet de construire des systèmes concurrents corrects et efficaces.
Pool de workers — concurrence bornée
{
wg sync.WaitGroup
w := ; w < numWorkers; w++ {
wg.Add()
{
wg.Done()
job := jobs {
results <- process(job)
}
}()
}
wg.Wait()
(results)
}
