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对象不是一个引用类型,在通过函数传值的时候需要使用地址

 

本文作者:salami_china

本文链接:https://www.cnblogs.com/wangjq19920210/p/16934471.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   salami_china  阅读(38)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起