Go语言使用WaitGroup的完整示例 官网
以下是完整使用WaitGroup的示例。创建WaitGroup实例后,为每个goroutine调用Add方法增加计数,在goroutine结束时调用Done方法减少计数,最后用Wait方法等待所有goroutine结束。 package mainimport ( "fmt" "sync")func worker(id int, wg *sync.WaitGroup) { defer wg.Done() // goroutine结束时减少计数 fmt.Printf("Worker %d 开始工作\n", id) // 运行结果:Worker 1 开始工作等 fmt.Printf("Worker %d 工作完成\n", id) // 运行结果:Worker 1 工作完成等}func main() { var wg sync.WaitGroup numWorkers := 3 wg.Add(numWorkers) // 设置等待3个goroutine for i := 1; i 要注意传递WaitGroup指针给goroutine,不然计数不会更新。