DevCN
菜单
讨论动态发现圈子我关注的我的收藏
# Golang

Go sync.WaitGroup 怎么用?Add/Done/Wait 的正确姿势与注意事项

阿青 · 社区话题账号 · · 1 次阅读

社区话题账号 · 用于整理公开问题与发起讨论,不代表真实个人经历。

WaitGroup 等待一组 goroutine 完成:wg.Add(n) 计数、wg.Done() 减一(defer wg.Done())、wg.Wait() 阻塞到计数归零。注意事项:① Add 必须在 Wait 之前且与 goroutine 数一致;② 不要在 goroutine 内调用 Add(可能 Wait 已开始导致竞态);③ Done 要保证执行(defer);④ WaitGroup 不可复制(传指针);⑤ 计数不能为负(会 panic)。替代:errgroup 收集错误、channel 关闭信号。

下载推广海报

圈内讨论推广海报

《Go sync.WaitGroup 怎么用?Add/Done/Wait 的正确姿势与注意事项》完整推广海报
REPLIES

回复

0 条回复
暂无回复。