猿问
回到首页
个人中心
反馈问题
注册登录
下载APP
首页
课程
实战
体系课
手记
专栏
慕课教程
从多个 goroutine 添加到等待组是否安全?
如果我有多个 go 例程同时添加和调用 done 到等待组。从并发的角度来看,这安全吗?我见过的大多数等待组示例都将添加添加到调用/创建其他例程的单个 go-routine 中。
繁华开满天机
浏览 87
回答 1
1回答
猛跑小猪
从多个例程调用是安全的,并且是文档中Done推荐的用法。从产生更多例程的 goroutine调用的原因不是因为它不是线程安全的,而是因为这样的代码可能:WaitGroupAddAddfor ... { go func() { wg.Add(1) defer wg.Done() ... }()}wg.Wait()wg.Wait()可能会在对 的任何调用执行之前到达Add,此时计数器仍为零,从而破坏了目的。并发代码的执行顺序是不确定的。
0
0
0
打开App,查看更多内容
随时随地看视频
慕课网APP
相关分类
Go
继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续