Goroutine i kanali u Go-u omogućuju skup dobro etabliranih obrazaca istovremenog izvršavanja koji rješavaju česte probleme — distribuciju rada, fan-out/fan-in, pipeline i ograničavanje brzine. Poznavanje tih idiomatskih obrazaca omogućuje vam da gradite ispravne i učinkovite sustave istovremenog izvršavanja.
Bazen radnika — ograničeno istovremeno izvršavanje
{
wg sync.WaitGroup
w := ; w < numWorkers; w++ {
wg.Add()
{
wg.Done()
job := jobs {
results <- process(job)
}
}()
}
wg.Wait()
(results)
}
