go 开启多个goroutine 执行任务, 偶尔会出现 内存地址错误

go 开启多个goroutine 执行任务, 偶尔会出现 runtime error: invalid memory address or nil pointer dereference

跟函数的参数是 *DB有关吗?
是否需要在函数内部去创建连接资源吗?
不能外面统一传到函数内部用吗?

go
最佳答案

最好贴代码,还有就是不要将连接通过参数传递进去,而是定义一个包内变量,包外用的话设置为可导出,每个方法定义一个变量去接收,不是传参

2周前 评论
讨论数量: 4

是一个goroutine的数据库资源连接还没释放,另一个goroutine又去取这个数据库连接资源,然后取不到,就报出nil了。

3周前 评论
huanbird 2周前

最好贴代码,还有就是不要将连接通过参数传递进去,而是定义一个包内变量,包外用的话设置为可导出,每个方法定义一个变量去接收,不是传参

2周前 评论

使用channel或者加互斥锁

2周前 评论

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!