`sync.map` 的实现原理

1. 通过 read 和 dirty 两个字段来进行读写分离,最新写入数据始终写进 dirty,然后定期同步到 read 上
2. 读的时候先从 read 读,如果读不到则穿透到 dirty 上读
3. 读取 read 时不需要加锁,但是读写 dirty 时都要加锁
4. 通过 misses 字段来统计 read 被穿透的次数,超过一定量时将 dirty 数据同步到 read 上
5. 删除数据时通过标记来延迟删除
展开
评论