记录一次QT使用Sqlite出现锁,程序崩溃的问题

QT集合Sqlite的问题

问题描述

实时采集数据,然后记录两个表,一个是原始数据表,一个统计数据表。在线程(非界面主线程)内执行,每120次insert一次原始数据表,每500次insert一次统计数据表,insert统一采用事务。

那么问题出现了:
在测试服务器上面测试的时候,每次插入事务的时候,频繁对数据库select翻页取数据,导致程序崩溃,qt弹出野指针的提示,数据库lock

解决办法

  1. 每次执行query语句之前,确认上一次锁释放。
query.finish();
  1. 增加线程互斥锁(目前可能没啥用,以后多线程操作数据库用得上)
    头文件
#include <QMutex>

.cpp

QMutex m_mutex;

可以使用自解锁的互斥锁,在自身析构的时候自动设置mutex为unlock。
用法:

#include <QMutexLocker>
QMuteLocker locker(&m_mutex);//在每次局部调用之前声明就可以
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值