fatal error: concurrent map iteration and map write
如上图,如果没有增加红框内的代码,运行起来没有问题;
加了红框的代码后,不停刷新页面请求时,偶尔会出现报错另程序强制停止(一般快速刷新5,6遍就panic停止了)
报错代码:fatal error: concurrent map iteration and map write
在网上查说是由于多个goroutine并发读写map导致的,但是我代码里并没有开过个goroutine,还是没明白出错的原因,请问一下报错的原因及解决方法,谢谢
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
![扫码二维码加入Web技术交流群](/public/img/jiaqun_03.jpg)
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
多个请求不就是多个goroutine吗. 加锁或使用 @John 提到的sync.Map.
https://www.jianshu.com/p/10a...
如果是web项目,框架会自动给你开多个协程
建议给这个map加个锁
在使用golang进行开发中,数据并发安全是经常要考虑到的因素,开发框架中并不会处理用户数据的并发安全。从1.9.2版本开始golang也提供了sync.Map并发安全的封装类型,此外也可以参考gf框架的并发安全容器:http://gf.johng.cn/494392