社区
其他技术讨论专区
帖子详情
使用goroutine出现BUG,请帅裂苍穹的道友帮忙看下
weixin_38066919
2019-09-20 10:39:52
我使用goroutine多线程的时候,执行以下语句,最后一次执行偶尔发生不执行的情况
如下图,最后一次执行应该输出 world,4 但是没有输出
请大家帮忙看看这是什么原因啊
...全文
45
3
打赏
收藏
使用goroutine出现BUG,请帅裂苍穹的道友帮忙看下
我使用goroutine多线程的时候,执行以下语句,最后一次执行偶尔发生不执行的情况 如下图,最后一次执行应该输出 world,4 但是没有输出 请大家帮忙看看这是什么原因啊
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
weixin_38067167
2019-09-20
打赏
举报
回复
因为主协程结束了。所以子协程没跑完就被关闭了 正确的做法应该是: wg :=make(sync.Waitgroup) func main{ wg.Add(2) go say("world") go say("hello") wg.Wait() } func say(s string){ //你的代码...后面加上这句 wg.Done() }
weixin_38067822
2019-09-20
打赏
举报
回复
正解。主协程退出,子协程没有跑完
weixin_38073387
2019-09-20
打赏
举报
回复
主綫程執行比go協程執行要快,主綫程執行結束之後關閉所以協程沒法執行。 建議讀一下GO并發編程這本書,裏面有詳細底層原理介紹。
其他技术讨论专区
473
社区成员
791,201
社区内容
发帖
与我相关
我的任务
其他技术讨论专区
其他技术讨论专区
复制链接
扫一扫
分享
社区描述
其他技术讨论专区
其他
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章