sync.WaitGroup 一个跨协程的计数器,主要用来等待一组协程的结束。
package mainimport ("fmt""sync""time")func main() {var wg sync.WaitGroupfor i := 0; i < 10; i++ {wg.Add(1)go func(index int) {defer wg.Done()fmt.Println("goroutine:", index)time.Sleep(time.Millisecond)}(i)}fmt.Println("等待协程")wg.Wait()fmt.Println("所有协程已执行完毕")}

