golang 每日一包之sync.Map

Orain · · 1319 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

1:包结构


包结构

sync.Map是一个线程安全的Map实现。

其构造如下:

sync.Map构造

其内部参数:

mu:互斥锁

read:一个线程安全的优先读的map,如果读不到再去dirty中加锁读取

dirty:最新的数据

misses: 用于标记read的未命中次数,当其大于dirty长度会将dirty更新至read中


1:Store 方法解析:


store流程

2.LoadOrStore方法解析:


LoadOrStore流程

3.Delete


Delete流程

4.Load


load流程

有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:Orain

查看原文:golang 每日一包之sync.Map

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1319 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传