golang 中的 sync.WaitGroup 这样用好么

golang 中的 sync.WaitGroup 这样用好么,第1张

golang 中的 sync.WaitGroup 这样用好么,第2张

把.Add()放到 goroutine 里面
golang 中的 sync.WaitGroup 这样用好么,第3张
golang 中的 sync.WaitGroup 这样用好么,第4张 ----------------------- 以下是精选回复-----------------------

答:可以的
答:官方文档这里说的很清楚

Note that calls with a positive delta that occur when the counter is zero must happen before a Wait. Calls with a negative delta, or calls with a positive delta that start when the counter is greater than zero, may happen at any time. Typically this means the calls to Add should execute before the statement creating the goroutine or other event to be waited for. If a WaitGroup is reused to wait for several independent sets of events, new Add calls must happen after all previous Wait calls have returned. See the WaitGroup example.
答:如果你是希望等待所有 goroutine 完成的话,那么 wg.Add(1)最好放到 go 函数外部, defer wg.Done() 放到函数内部
答:defer 没问题,但是 Add 最好放外边,虽然他在第一行,但是未必会比 wait 先执行。
答:不可以
答:这样用是错的,有可能没 Add,Wait 就执行了,起不到 Wait 的作用
答:我觉得不行, wait()可能直接过去,一个也等不到
答:这是 minikube 的源代码, 我看到的时候也是惊呆了

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » golang 中的 sync.WaitGroup 这样用好么

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情