Go map类型的线程安全吗?我有一个程序,其中有许多goroutine可以读写地图类型。如果我需要实施保护机制,什么是最好的方法?
2 回答
小唯快跑啊
TA贡献1863条经验 获得超2个赞
您需要使用goroutines并通过channel同步对地图的访问。常见问题解答中的说明:
经过长时间的讨论,人们决定使用地图的典型用法不需要从多个线程进行安全访问,并且在这种情况下,地图可能是某些已经同步的较大数据结构或计算的一部分。因此,要求所有映射操作都获取互斥量将减慢大多数程序的速度,并增加少数程序的安全性。但是,这并不是一个容易的决定,因为这意味着不受控制的地图访问可能会使程序崩溃。
该语言不排除原子图更新。在需要时(例如在托管不受信任的程序时),实现可以互锁地图访问。
- 2 回答
- 0 关注
- 330 浏览
添加回答
举报
0/150
提交
取消