在Go中,我们可以使用每个键的锁同步地图的每个键吗?

在Go中,我们可以使用每个键的锁同步地图的每个键吗?,go,concurrency,mutex,Go,Concurrency,Mutex,在Go中,我们可以使用每个键的锁同步地图的每个键吗? 是否始终需要地图级全局锁? 文档中说,对map的任何访问都不是线程安全的。但是如果存在一个键,那么它可以单独锁定吗?不完全是这样,但是如果您只是从映射中读取指针并修改引用,那么您就不会修改映射本身。这是您想要的简单实现: 基本上,互斥锁用于保护映射,映射中的每个项都像“锁”一样使用 可以通过环绕地图来锁定地图的关键点

在Go中,我们可以使用每个键的锁同步地图的每个键吗? 是否始终需要地图级全局锁?
文档中说,对map的任何访问都不是线程安全的。但是如果存在一个键,那么它可以单独锁定吗?

不完全是这样,但是如果您只是从映射中读取指针并修改引用,那么您就不会修改映射本身。

这是您想要的简单实现:


基本上,互斥锁用于保护映射,映射中的每个项都像“锁”一样使用

可以通过环绕地图来锁定地图的关键点