普通map在并发写的场景下是不安全的,所以golang有了sync.Map数据类型,这个可以解决这个问题,当然还有读写锁
使用案例如下:
func main(){
//声明 scene,类型为 sync.Map,注意,sync.Map 不能使用 make 创建。
var scene sync.Map
// 将键值对保存到sync.Map
scene.Store("zhangsan", 23)
scene.Store("lisi", 28)
scene.Store("wangwu", "湖北武汉")
scene.Store("zhaoliu", "上海浦东")
// 从sync.Map中根据键取值
fmt.Println(scene.Load("lisi"))
// 根据键删除对应的键值对
scene.Delete("zhangsan")
// 遍历所有sync.Map中的键值对
i := 0
scene.Range(func(k, v interface{}) bool {
fmt.Println("遍历syn_map====>:", k, v)
//统计map的大小
i++
return true
})
fmt.Println("syn_map大小为:", i)
}
