sync.map
# 概述
Go语言原生map并不是线程安全的,对它进行并发读写操作的时候,需要加锁。而sync.map则是一种并发安全的map,在Go1.9引入。
# 正文
一般情况下解决并发读写map的思路是加一把锁。而使用sync.map之后,对map的读写,不需要加锁。它是通过空间换时间的方式,使用read 和dirty两个map来进行读写分离,降低锁时间来提高效率。
sync.Map内置了诸如Store、Load、LoadOrStore、LoadOrDelete、Delete、Range等操作方法。
var m = sync.Map{}
m.Store(key, value)
v,_ := m.Load(key)
1
2
3
2
3
上次更新: 2023/01/11