sync.WaitGroup中要求Wait的时候不能Add,这样做的原因是什么呢?

kiwi-yan · · 1387 次点击
不能在一进入函数就add吗?因为当wait调用的时候发现没有数据,就会报错。 源码注释里也有写 new Add calls must happen after all previous Wait calls have returned. 表达的不是说在wait的时候不能add,是表达要先add然后再调用wait
#7
更多评论
哪里写了不能add? 一般场景不应该是wait的时候add吗?当所有gorouitne执行完才结束?
#1
比如有两个goroutine,第一个里面有wg.Wait(),第二个里面有wg.Add(1),Add()比Wait()晚一些运行 就会报错 ![截图.png](https://static.studygolang.com/170928/ab02e4e94cab6ea6eb237cf7e12da317.png)
#2