Go map使用读写锁
读写锁处理线程竞争
注意:循环切片数据时,注意遍历后的`v`地址是相同的(在for代码块中,for生命周期内,创建的变量v生命周期内地址不变)
package main
import (
"sync"
"app01/controller"
"app01/service"
)
var (
rwlock sync.RWMutex
)
func updateProductInfo(ProductInfo) {
var tmp map[int]*service.SecProductInfo = make(map[int]*service.SecProductInfo, 1024)
for _, v range ProductInfo {
pro := &v // 重新赋值,否则引用地址相同
tmp[v.Pid] = pro
}
// 数据重新写入map
rwlock.Lock()
service.SecProductInfoM
Go map使用读写锁最先出现在Python成神之路。
共有 0 条评论