指尖上的记忆指尖上的记忆
首页
  • 基础
  • Laravel框架
  • Symfony框架
  • 基础
  • Gin框架
  • 基础
  • Spring框架
  • 命令
  • Nginx
  • Ai
  • Deploy
  • Docker
  • K8s
  • Micro
  • RabbitMQ
  • Mysql
  • PostgreSsql
  • Redis
  • MongoDb
  • Html
  • Js
  • 前端
  • 后端
  • Git
  • 知识扫盲
  • Golang
🌟 gitHub
首页
  • 基础
  • Laravel框架
  • Symfony框架
  • 基础
  • Gin框架
  • 基础
  • Spring框架
  • 命令
  • Nginx
  • Ai
  • Deploy
  • Docker
  • K8s
  • Micro
  • RabbitMQ
  • Mysql
  • PostgreSsql
  • Redis
  • MongoDb
  • Html
  • Js
  • 前端
  • 后端
  • Git
  • 知识扫盲
  • Golang
🌟 gitHub

普通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)
}