Go 源码之 Sync.Map
一、简介
sync.Map
是 Go 语言标准库中的一个并发安全的映射(Map)实现。
它的主要特点包括:
- 并发安全:支持多个协程同时进行读写操作。
- 高效:在并发环境下提供较好的性能。
- 简单易用:与普通的 map 用法类似。
sync.Map
的实现采用了一些并发安全的技术,如原子操作和内存屏障。
在使用 sync.Map
时,需要注意以下几点:
- 不要在持有锁的情况下进行长时间的操作。
- 避免频繁的写入和读取。
- 注意内存使用,避免过大的 sync.Map
二、源码
(一)结构
// 安全读写 map
type Map struct {
mu Mutex // 当写read map 或读写dirty map时 需要上锁
read atomic.Value