mapmapmap
mapsyncMapmapsync.Map
import (
"sync"
)
func main() {
// 创建一个并发安全的map
var m sync.Map
// 向map中添加键值对
m.Store("key1", "value1")
m.Store("key2", "value2")
// 从map中获取值
value, ok := m.Load("key1")
if ok {
fmt.Println("Value:", value)
}
// 删除map中的键值对
m.Delete("key2")
// 遍历map中的所有键值对
m.Range(func(key, value interface{}) bool {
fmt.Println("Key:", key, "Value:", value)
return true
})
}
sync.MapmapStoremapLoadDeleteRangemap
sync.Mapinterface{}Range
sync.Mapmapsync.Mapmap
mapsync.Map
Store(key, value interface{})mapLoad(key interface{}) (value interface{}, ok bool)mapDelete(key interface{})mapRange(f func(key, value interface{}) bool)mapf
sync.Map
import (
"fmt"
"sync"
)
func main() {
var m sync.Map
// 存储键值对
m.Store("key1", 1)
m.Store("key2", 2)
m.Store("key3", 3)
// 并发读取值
go func() {
value, ok := m.Load("key1")
if ok {
fmt.Println("Goroutine 1 - Value:", value)
}
}()
go func() {
value, ok := m.Load("key2")
if ok {
fmt.Println("Goroutine 2 - Value:", value)
}
}()
// 并发删除键值对
go func() {
m.Delete("key3")
}()
// 遍历所有键值对
m.Range(func(key, value interface{}) bool {
fmt.Println("Key:", key, "Value:", value)
return true
})
// 等待goroutines完成
time.Sleep(time.Second)
}
sync.Mapmapmap
RangemapRange
Rangemapsync.Map