course/sync/sync.map_example.go

27 lines
500 B
Go

package main
import (
"fmt"
"strconv"
"sync"
)
// 并发安全版map
// 不需要初始化,直接使用即可
var sm sync.Map
func main() {
w := sync.WaitGroup{}
for i := 0; i < 10; i++ {
w.Add(1)
go func(n int) {
defer w.Done()
key := strconv.Itoa(n)
sm.Store(key, n) //必须使用sync.Map内置的store方法去设置键值对
value, _ := sm.Load(key) //必须使用sync.Map内置的load方法取值
fmt.Printf("k:%v,v:%v\n", key, value)
}(i)
}
w.Wait()
}