如上图,如果没有增加红框内的代码,运行起来没有问题;
加了红框的代码后,不停刷新页面请求时,偶尔会出现报错另程序强制停止(一般快速刷新5,6遍就panic停止了)
报错代码:fatal error: concurrent map iteration and map write
在网上查说是由于多个goroutine并发读写map导致的,但是我代码里并没有开过个goroutine,还是没明白出错的原因,请问一下报错的原因及解决方法,谢谢
如上图,如果没有增加红框内的代码,运行起来没有问题;
加了红框的代码后,不停刷新页面请求时,偶尔会出现报错另程序强制停止(一般快速刷新5,6遍就panic停止了)
报错代码:fatal error: concurrent map iteration and map write
在网上查说是由于多个goroutine并发读写map导致的,但是我代码里并没有开过个goroutine,还是没明白出错的原因,请问一下报错的原因及解决方法,谢谢
在使用golang进行开发中,数据并发安全是经常要考虑到的因素,开发框架中并不会处理用户数据的并发安全。从1.9.2版本开始golang也提供了sync.Map并发安全的封装类型,此外也可以参考gf框架的并发安全容器:http://gf.johng.cn/494392
7 回答5.3k 阅读
6 回答6.8k 阅读✓ 已解决
4 回答2.3k 阅读
1 回答3.4k 阅读
2 回答931 阅读✓ 已解决
2 回答2.3k 阅读
1 回答2.2k 阅读
1 回答5.3k 阅读✓ 已解决
2 回答7.3k 阅读✓ 已解决
1 回答2k 阅读✓ 已解决
2 回答6k 阅读
2 回答4.8k 阅读✓ 已解决
如果是web项目,框架会自动给你开多个协程
建议给这个map加个锁