当前位置: 首页 > news >正文

【Golang map并发报错】panic: assignment to entry in nil map

go并发写map[string]interface{}数据的时候,报错:panic: assignment to entry in nil map

多个key同时操作一个map时,如:

test[key1] = 1

test[key2] = "a"

test[key3] = true

就会遇到并发nil值报错,什么test[key-xxx] = make()根本不行。

用异步sync.Map解决:

// map[string]interface{} 全局配置(自定义)参数。读写
var syncMapInterface sync.Map// SetGlobalMapInterface 新增或更新
func SetGlobalMapInterface(key string, value interface{}) {syncMapInterface.Store(key, value)
}// GetGlobalMapInterface 读取
func GetGlobalMapInterface(key string) interface{} {back, _ := syncMapInterface.Load(key)return back
}// DelGlobalMapInterface 删除
func DelGlobalMapInterface(key string) interface{} {syncMapInterface.Delete(key)back, _ := syncMapInterface.Load(key)return back
}

Lock锁那个比较麻烦,不建议使用。推荐使用sync.Map。

http://www.lryc.cn/news/278519.html

相关文章:

  • 【GO语言依赖】Go语言依赖管理简述
  • 论文阅读记录SuMa SuMa++
  • 性能分析与调优: Linux 内存观测工具
  • 【ARM 嵌入式 编译系列 3.4 -- 查看所依赖库文件的路径 详细介绍】
  • 分布式锁3: zk实现分布式锁3 使用临时顺序节点+watch监听实现阻塞锁
  • google drive api
  • 3_代理模式(动态代理JDK原生和CGLib)
  • Linux的权限(1)
  • 数据安全保障的具体措施有哪些
  • 浅谈标签及应用场景
  • Linux动态分配IP与正向解析DNS
  • pyspark 使用udf 进行预测,发现只起了一个计算节点
  • mysql触发器的简单使用
  • 全志T113开发板Qt远程调试
  • 学习使用php、js脚本关闭当前页面窗口的方法
  • python 人脸检测与人脸识别
  • RT-Thread: ulog 日志 讲解和使用
  • git ssh key 配置
  • MongoDB聚合:$documents
  • 程序员英语 - 英文会议常用句型
  • UV贴图和展开初学者指南
  • 解密Path环境变量
  • git撤销提交到本地的commit
  • 使用Adobe Acrobat Pro DC给pdf文件填加水印
  • 解决:Unity : Error while downloading Asset Bundle: Couldn‘t move cache data 问题
  • SpringBoot默认配置文件
  • Flink构造宽表实时入库案例介绍
  • 【Kubernetes】K8s 查看 Pod 的状态
  • Linux系统操作命令
  • 大模型学习与实践笔记(五)