加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读