fatal error: concurrent map iteration and map write

发布于 2022-09-06 13:05:00 字数 390 浏览 22 评论 0

clipboard.png

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

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

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

梦太阳 2022-09-13 13:05:01

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

稀香 2022-09-13 13:05:00

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

痴者 2022-09-13 13:05:00

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文