美文网首页
go 中的 sync.Map

go 中的 sync.Map

作者: wayyyy | 来源:发表于2022-05-21 23:47 被阅读0次
sync.map

sync.Map 的使用和内置的 map 类型一样,只不过它是并发安全的。

  • Store:存储一对 key-value 值

    var m sync.Map
    
    // 写入
    m.store("Tom", 18)
    m.store("Tim", 18)
    
  • Load:根据 key 获取对应的 value 值,并且可以判断 key 是否存在

    age, exists := m.Load("Tom")
    
  • Delete:删除一个 key-value 键值对

    m.Delete("Tom")
    
  • Range:循环迭代 sync.Map,效果与 for range 一样

    m.Range(func(key, value interface{}) bool {
        name := key.(string)
        age := value.(int)
        return true
    })
    
  • LoadOrStore:如果 key 对应的 value 存在,则返回该 value;如果不存在,存储相应的 value

sync.Map 和 sync.Mutex + Map 性能比较

TODO

sync.Map 和 sync.RWMutex + Map 性能比较

TODO

相关文章

  • Go语言——sync.Map详解

    Go语言——sync.Map详解 sync.Map是1.9才推荐的并发安全的map,除了互斥量以外,还运用了原子操...

  • go 中的 sync.Map

    sync.map sync.Map 的使用和内置的 map 类型一样,只不过它是并发安全的。 Store:存储一对...

  • Go sync.Map

    map并发读线程安全,并发读写线程不安全。 sync.Map 读写分离 空间换时间 Map Golang1.6之前...

  • Go 1.9 sync.Map

    原生的map在没有加锁的情况下用于协程是数据不安全,并且因为不安全,在编译的时候编译器也会报错。如果要在多个协程中...

  • Sync.Map 源码分析

    介绍 sync.Map是go官方实现的一个thread safe的map, 适合读多写少的场景 数据结构 Load...

  • map与sync.Map

    Go 语言原生 map 并不是线程安全的,对它进行并发读写操作的时候,需要加锁。而 sync.map 则是一种并发...

  • 基于亿条数据的内存,redis两种聚合GO计算的实战思考

    总结: (1) go 的 map读,写是线程不安全的(2) sync.map 用空间换时间的思想,适合读多写少的场...

  • go基础——map/sync.Map

    注:权作为学习笔记,基于version: 1.14 内容 一 map1.1 数据结构1.2 写入1.3 查找1.4...

  • day06-go sync.map

    https://mp.weixin.qq.com/s/mXOU8TElP8bbqaybRKN8eA go原生的ma...

  • 深入解析 go sync.map 源码

    https://zhuanlan.zhihu.com/p/412225317[https://zhuanlan.z...

网友评论

      本文标题:go 中的 sync.Map

      本文链接:https://www.haomeiwen.com/subject/qeghprtx.html