Οι goroutines και τα channels του Go επιτρέπουν ένα σύνολο καθιερωμένων προτύπων concurrent, τα οποία επιλύουν κοινά προβλήματα — διανομή εργασίας, fan-out/in, pipelines και rate limiting. Η γνώση αυτών των ιδιωματικών προτύπων σας επιτρέπει να φτιάξετε σωστά και αποδοτικά concurrent συστήματα.
Worker pool — περιορισμένη concurrent εκτέλεση
{
wg sync.WaitGroup
w := ; w < numWorkers; w++ {
wg.Add()
{
wg.Done()
job := jobs {
results <- process(job)
}
}()
}
wg.Wait()
(results)
}
