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解决:文章来源:https://www.toymoban.com/news/detail-805929.html
// 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。文章来源地址https://www.toymoban.com/news/detail-805929.html
到了这里,关于【Golang map并发报错】panic: assignment to entry in nil map的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!