这里有一直迷路的小兔子

Goroutine详细:sync.WaitGroup

sync.WaitGroup 是什么. sync.WaitGroup 是 Go 标准库中用于等待一组 goroutine 完成的同步原语。它解决的核心问题是:主 goroutine 需要知道其他多个 goroutine 何时全部执行完毕。 基本用法 1 2 3 4 5 6 7 8 9 10 11 var wg sync.WaitGroup for i := 0; i < 3; i++ { wg.Add(1) // 计数 +1 go func(id int) { defer wg.Done() // 计数 -1 // 做一些工作 }(i) } wg.Wait() // 阻塞,直到计数归零 为什么需要 Add 和 Done WaitGroup 内部维护一个计数器,它的语义是"还有多少个任务没完成": ...

October 11, 2026 · 1 min · Zero