sync.WaitGroup
在 Go 语言中,sync.WaitGroup
用于最终完成的场景,关键点在于一定要等待所有协程都执行完毕,示例如下:
func main() {
waitGroup := &sync.WaitGroup{}
for i := 0; i < 10; i++ {
waitGroup.Add(1)
go func(waitGroup *sync.WaitGroup) {
defer waitGroup.Done()
fmt.Print("1-")
}(waitGroup)
}
waitGroup.Wait() // 这里会阻塞main 直到所有的任务都完成
fmt.Println("end")
}
网友评论