Golang sync.WaitGroup的用法

参考链接:https://studygolang.com/articles/12972

func main() {
    wg := sync.WaitGroup{}
    wg.Add(100)
    for i := 0; i < 100; i++ {
        go func(i int) {
            fmt.Println(i)
            wg.Done()
        }(i)
    }
    wg.Wait()
}

WaitGroup 对象内部有一个计数器,最初从0开始,它有三个方法:Add(), Done(), Wait() 用来控制计数器的数量。

1)Add(n) 把计数器设置为n 

2)Done() 每次把计数器-1 

3)wait() 会阻塞代码的运行,直到计数器地值减为0。

注意事项:

1)计数器不能为负值

2)WaitGroup对象不是一个引用类型,在通过函数传值的时候需要使用地址

 

posted @ 2022-11-29 09:32  salami_china  阅读(35)  评论(0编辑  收藏  举报