sync.Map 怎么解决线程安全问题?看过源码吗?

本文阅读 1 分钟
首页 golang 正文

题目来源:腾讯

频次:高频

答案:Evan.C

  • sync.Map底层也是锁,进行了读写分离
type Map struct {
   mu Mutex
   read atomic.Value // readOnly
   dirty map[interface{}]*entry
   misses int
}
  • read包含对并发访问安全的map内容的部分(无论是否持有mu)。
  • Dirty包含map内容中需要保存mu的部分。
  • misses计算自从上次读取map更新后,需要锁定mu来确定key是否存在的加载次数。
本文来自投稿,不代表本站立场,如若转载,请注明出处:
syncpool的实现原理
« 上一篇 09-17
问了sync.Map(我说我对sync.Pool比较熟,就说Pool了)
下一篇 » 09-17

发表评论

发表评论