Go-வின் goroutines மற்றும் channels ஆனவை, பொதுவான பிரச்சினைகளைத் தீர்க்கும் நன்கு நிறுவப்பட்ட concurrency patterns தொகுப்பை சாத்தியமாக்குகின்றன — வேலையைப் பகிர்தல், fan-out/in, pipelines, மற்றும் rate limiting. இந்த idiomatic patterns-ஐ அறிந்திருப்பது, சரியான, திறமையான concurrent அமைப்புகளை உருவாக்க உதவுகிறது.
Worker pool — bounded concurrency
{
wg sync.WaitGroup
w := ; w < numWorkers; w++ {
wg.Add()
{
wg.Done()
job := jobs {
results <- process(job)
}
}()
}
wg.Wait()
(results)
}
