这段代码我看懂了
type Demo struct {
Data map[string]string
Lock sync.RwMutex
}
func (d Demo) Get(k string) string{
d.Lock.RLock()
defer d.Lock.RUnlock()
return d.Data[k]
}
func (d Demo) Set(k,v string) {
d.Lock.Lock()
defer d.Lock.UnLock()
d.Data[k]=v
}
现在我的读写都在一个函数里面完成,先获取,如果存在直接取出来,如果不存在,计算后赋值,下次再取就直接取了
写锁的等级比读锁高的.
你只要先执行
d.Lock.Lock()
然后进行读操作和写操作
最后
d.Lock.UnLock()
就可以了。