Go work groups
24 Feb 2017
One of those blog entries where I just want to remember something useful.
func main() {
wg := &sync.WaitGroup{}
// launch 10 worker goroutines
for i := 0; i < 10; i++ {
wg.Add(1) // must happen outside doWork
go doWork(wg)
}
wg.Wait() // will wait for all workers to finish
}
func doWork(wg *sync.WaitGroup) {
defer wg.Done() // think of this as wg.Minus(1)
// do some actual work in here
}