Go 源码之 Sync.Map
sync.Map
是 Go 语言标准库中的一个并发安全的映射(map)类型,提供了简单的 key-value 存储功能,并且保证了在并发环境下的安全性。
以下是一个使用 sync.Map
的简单示例:
package main
import (
"fmt"
"sync"
)
func main() {
var m sync.Map
// 存储键值对
m.Store("key1", "value1")
m.Store("key2", "value2")
// 读取键对应的值
value, found := m.Load("key1")
if found {
fmt.Println("key1:", value)
}
// 删除键
m.Delete("key2")
// 返回映射中的键的数量
fmt.Println("Length:", m.Len())
// 迭代映射中的所有键值对
m.Range(func(key, value interface{}) bool {
fmt.Println("Key:", key, "Value:", value)
return true // 继续迭代
})
}
在这个示例中,我们创建了一个 sync.Map
的实例,并展示了如何存储、读取、删除键值对,以及如何迭代映射中的所有键值对。sync.Map
提供的方法 Store
、Load
、LoadOrStore
、Delete
和 Range
都是线程安全的。
评论已关闭