前言Go语言通过sync.WaitGroup实现协程之间的同步 正文 defer waitGroup.Done()完全等同于defer waitGroup.Add(-1) 123456789101112131415161718192021package mainimport "sync"var waitGroup sync.WaitGroupfunc task() { // 每次完成协程都将waitGroup自减1 defer waitGroup.Done() ...}func main() { for i := 0; i < 3; i++ { go task() // 每次创建协程都将waitGroup计数器自增1 waitGroup.Add(1) } // 等待waitGroup中所有协程完成 waitGroup.Wait()} 完成参考文献哔哩哔哩——郭宏志-老郭