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  }