golang 1.8 并发安全Map简单实现
发布时间:2020-12-16 19:10:25 所属栏目:大数据 来源:网络整理
导读:type SafeMap struct { sync.RWMutex Map map [ int64 ] string } func NewSafeMap(size int ) *SafeMap { sm := new (SafeMap) sm.Map = make ( map [ int64 ] string ,size) return sm} func (sm *SafeMap) ReadMap(key int64 ) string { sm.RLock() value
type SafeMap struct {
sync.RWMutex
Map map[int64]string
}
func NewSafeMap(size int) *SafeMap {
sm := new(SafeMap)
sm.Map = make(map[int64]string,size)
return sm
}
func (sm *SafeMap) ReadMap(key int64) string {
sm.RLock()
value := sm.Map[key]
sm.RUnlock()
return value
}
func (sm *SafeMap) WriteMap(key int64,value string) {
sm.Lock()
sm.Map[key] = value
sm.Unlock()
}
// 用于for k,_ := range m.Keys(){v := m.ReadMap(k) ....}
func (sm *SafeMap) Keys() []int64 {
sm.RLock()
value := make([]int64, 0)
for k,_ := range sm.Map {
value = append(value,k)
}
sm.RUnlock()
return value
} (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |