社区
其他技术讨论专区
帖子详情
go线程安全问题
weixin_38058748
2019-09-20 10:43:06
我们知道当创建大量goroutine,goroutine中任务是对同一个map进行读写时,程序会崩溃,无法执行,也就是map线程不安全。但如果设置逻辑处理器为1的话,还会有这样问题吗?
...全文
50
5
打赏
收藏
go线程安全问题
我们知道当创建大量goroutine,goroutine中任务是对同一个map进行读写时,程序会崩溃,无法执行,也就是map线程不安全。但如果设置逻辑处理器为1的话,还会有这样问题吗?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
weixin_38064966
2019-09-20
打赏
举报
回复
会有问题的,map 的读写过程不是原子性的。单核并不能保证。
weixin_38069045
2019-09-20
打赏
举报
回复
这是go语言实战里的图,G*代表协程,我在想,如果就一个线程的话,G*之间永远不会同一时间被调度,那还用锁干什么?
weixin_38076910
2019-09-20
打赏
举报
回复
goroutine 并不是挨个执行完的,之间会有调度,可能会在执行期间被打断,就可能造成多个goroutine访问 map这个共享变量,所以会造成并发写的panic吧。
weixin_38085383
2019-09-20
打赏
举报
回复
正解!
weixin_38103419
2019-09-20
打赏
举报
回复
建议你搜索学习一下Atomicity
Go-golang-set-Go的
线程安全
的和非
线程安全
的高性能集
golang-set - Go的
线程安全
的和非
线程安全
的高性能集
Go-mapgen-一个简单
线程安全
类型安全的GOmap生成器
mapgen - 一个简单,
线程安全
,类型安全的GO map 生成器
Go-Go中的
线程安全
循环缓冲区环形缓冲区实现了io.ReaderWriter接口
Go中的
线程安全
循环缓冲区(环形缓冲区),实现了io.ReaderWriter接口
Go-Go包速度提供了一个
线程安全
计数器
Go包速度提供了一个
线程安全
计数器,用于在指定的时间内测量刻度。
golang
线程安全
的map实现
主要介绍了golang
线程安全
的map实现,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
其他技术讨论专区
433
社区成员
791,270
社区内容
发帖
与我相关
我的任务
其他技术讨论专区
其他技术讨论专区
复制链接
扫一扫
分享
社区描述
其他技术讨论专区
其他
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章