sync.waitgroup奇怪的地方

tommytian770401 · · 971 次点击
<a href="/user/marlonche" title="@marlonche">@marlonche</a> ,多谢,正解。原来是done的位置放错了。
#6
更多评论
多试几次,不一定是最后一次,结果也不一定是***15***,你这写法有不确定性,只要每个`go`协程中的`defer wg.Done()`执行完`sum`就会被打印出来,无论`ch`中的数据有没有全部被读取出来,这个按照你代码执行的一次结果 ``` 5 1 4 2 sum is done 12 ```
#1
在最后加一个`time.Sleep(6 * time.Second)`就一定能看到了,并发协程未执行完导致的问题。
#2