有志者,事竟成!如果你在学习golang,那么本文《在 Go 例程中迭代映射?》,就很适合你!文章讲解的知识点主要包括,若是你对本文感兴趣,或者是想搞懂其中某个知识点,就请你继续往下看吧~问题内容我
有志者,事竟成!如果你在学习golang,那么本文《在 Go 例程中迭代映射?》,就很适合你!文章讲解的知识点主要包括,若是你对本文感兴趣,或者是想搞懂其中某个知识点,就请你继续往下看吧~
问题内容我在不久前编写的一些旧代码上看到一些“致命错误:并发映射迭代和映射写入”。我一直在尝试诊断问题,并且遇到了类似于下面的演示链接的代码块。
对我来说,迭代返回的映射(通过引用传递)似乎是错误的,即使它是在带锁的函数中返回的。
我正在寻找关于为什么这似乎不会引发上述错误的解释。
我知道现在有 RWMutex 和同步映射,但这段代码是不久前编写的,我正在寻找功能的解释而不是改进。
https://play.golang.org/p/_RY-QAyGE2W
我假设上面的代码会抛出“致命错误:并发映射迭代和映射写入”,但它似乎工作没有问题。
这更好地说明了这一点:Https://play.golang.org/p/RiWTxBoNqwD 它不会在演示中运行,但如果您从命令行运行它,它几乎会立即崩溃。
映射的迭代不受互斥锁的保护。仅返回地图引用的行为受到保护。
这几乎是一样的,但是整个迭代都受到互斥锁的保护:https://play.golang.org/p/cQNs3x_k-SL 或这个 https://play.golang.org/p/ydjprgvF6aE
今天关于《在 Go 例程中迭代映射?》的内容介绍就到此结束,如果有什么疑问或者建议,可以在编程网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!
--结束END--
本文标题: 在 Go 例程中迭代映射?
本文链接: https://lsjlt.com/news/596315.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-04-05
2024-04-05
2024-04-05
2024-04-04
2024-04-05
2024-04-05
2024-04-05
2024-04-05
2024-04-04
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0