github.com/zhangdapeng520/zdpgo_json@v0.1.5/concurrent/go_below_19.go (about) 1 //go:build !go1.9 2 // +build !go1.9 3 4 package concurrent 5 6 import "sync" 7 8 type Map struct { 9 lock sync.RWMutex 10 data map[interface{}]interface{} 11 } 12 13 func NewMap() *Map { 14 return &Map{ 15 data: make(map[interface{}]interface{}, 32), 16 } 17 } 18 19 func (m *Map) Load(key interface{}) (elem interface{}, found bool) { 20 m.lock.RLock() 21 elem, found = m.data[key] 22 m.lock.RUnlock() 23 return 24 } 25 26 func (m *Map) Store(key interface{}, elem interface{}) { 27 m.lock.Lock() 28 m.data[key] = elem 29 m.lock.Unlock() 30 }