package main import ( "fmt" "sync" "time" ) func w(id int, wg \*sync.WaitGroup) { defer wg.Done() fmt.Printf("%d starting\n", id) time.Sleep(time.Second) fmt.Printf("%d done\n", id) } func main() { var wg sync.WaitGroup for i := 1; i <= 5; i++ { wg.Add(1) go w(i, &wg) } wg.Wait() } 

See: WaitGroup

Comments