go 中的 sync.WaitGroup

2022-05-21  本文已影响0人  wayyyy
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")
}
上一篇 下一篇

猜你喜欢

热点阅读