Go ਦੇ goroutines ਅਤੇ channels ਵਧੀਆ ਪ੍ਰਾਪਤ concurrency patterns ਦਾ ਇੱਕ ਸੈੱਟ ਸਮਰੱਥ ਬਣਾਉਂਦੇ ਹਨ ਜੋ ਆਮ ਸਮੱਸਿਆਵਾਂ ਨੂੰ ਹੱਲ ਕਰਦੇ ਹਨ — ਕੰਮ ਨੂੰ ਵੰਡਣਾ, fanning out/in, pipelines, ਅਤੇ rate limiting। ਇਨ੍ਹਾਂ idiomatic patterns ਨੂੰ ਜਾਣ ਕੇ ਤੁਸੀਂ ਸਹੀ ਅਤੇ ਮੁਤਾਸ਼ਰ concurrent systems ਬਣਾ ਸਕਦੇ ਹੋ।
Worker pool — bounded concurrency
{
wg sync.WaitGroup
w := ; w < numWorkers; w++ {
wg.Add()
{
wg.Done()
job := jobs {
results <- process(job)
}
}()
}
wg.Wait()
(results)
}
