functask() { // Decrease waitGroup by 1 every time a goroutine is completed defer waitGroup.Done() ... }
funcmain() { for i := 0; i < 3; i++ { go task() // Increase waitGroup counter by 1 every time a goroutine is created waitGroup.Add(1) } // Wait for all goroutines in waitGroup to complete waitGroup.Wait() }