您的当前位置:克罗恩病 > 诱发病因 > golang中map并发读写操作
golang中map并发读写操作
Go中map并发使用是不安全的,当你使用goroutine同时对一个map进行读写操作时,不确定会发生什么(由于读写执行顺序不确定造成的).针对这种情况,我们要添加读写锁对sync.RWMutex其进行同步.
varcounter=struct{
sync.RWMutex
mmap[string]int
}{m:make(map[string]int)}
复制代码
从counter读取数据,使用读锁counter.RLock()
n:=counter.m["some_key"]
counter.RUnlock()
fmt.Println("some_key:",n)
复制代码
向counter写数据,使用写锁counter.Lock()
counter.m["some_key"]++
counter.Unlock()
复制代码
南京治白癜风最好的医院白癜风医院成都哪家好