在 Go 语言的并发编程世界中,sync.WaitGroup 是一个简单却极其重要的同步工具。今天我们就来深入探讨一下它的应用场景和使用技巧,帮助你在实际项目中更好地管理并发任务。
sync.WaitGroup 是 Go 标准库 sync 包中的一个同步工具,用于等待一组 goroutine 完成执行。它的核心是通过一个计数器来跟踪并发任务的数量:当计数器为零时,等待的 goroutine 可以继续执行。
WaitGroup提供了三个核心方法:
Add(delta int): 增加计数器的值,表示需要等待的 goroutine 数量Done(): 将计数器减 1,表示一个 goroutine 已完成Wait(): 阻塞当前 goroutine,直到计数器归零