【go】fatal error: concurrent map iteration and map write

【go】fatal error: concurrent map iteration and map write

如上图,如果没有增加红框内的代码,运行起来没有问题;
加了红框的代码后,不停刷新页面请求时,偶尔会出现报错另程序强制停止(一般快速刷新5,6遍就panic停止了)

报错代码:fatal error: concurrent map iteration and map write

在网上查说是由于多个goroutine并发读写map导致的,但是我代码里并没有开过个goroutine,还是没明白出错的原因,请问一下报错的原因及解决方法,谢谢

回答

如果是web项目,框架会自动给你开多个协程
建议给这个map加个锁

在使用golang进行开发中,数据并发安全是经常要考虑到的因素,开发框架中并不会处理用户数据的并发安全。从1.9.2版本开始golang也提供了sync.Map并发安全的封装类型,此外也可以参考gf框架的并发安全容器:http://gf.johng.cn/494392

多个请求不就是多个goroutine吗. 加锁或使用 @John 提到的sync.Map.

https://www.jianshu.com/p/10a...

以上是 【go】fatal error: concurrent map iteration and map write 的全部内容, 来源链接: utcz.com/a/101206.html

回到顶部