sync.Map适用场景:
读多写少的场景
RwMap,MuMap,SyncMap三种map性能对比,
写:RwMap>MuMap>SyncMap
读:SyncMap>RwMap>MuMap
删:SyncMap>MuMap>RwMap
SyncMap 结构体
type Map struct {
mu Mutex
read atomic.Pointer[readOnly]
dirty map[any]*entry
misses int
}
type readOnly struct {
m map[any]*entry
amended bool // true if the dirty map contains some key not in m.
}
type entry struct {
p atomic.Pointer[any]
}