Qt-MySQL多线程写数据库的一种简单方法---多线程写队列入库
记录一种安全的多线程写数据库的方法。
1.写队列线程。
开启任意个线程往队列(QQueue< QByteArray > queue)里写数据,这是线程安全的。
while(reading){
mutex.lock();
if(tcpSocket->waitForReadyRead()){
QByteArray inmsg = tcpSocket->readAll();
queue.push_back(inmsg);
qDebug()<
2.读队列线程
在这个线程内与数据库建立单个连接,写库(略)。queue.size()>1防止越界。
void SendMySQLthread::run(){
while(sending){
if(!queue.empty()){
if(queue.size()>1){
mutex.lock();
queue.pop_front();
mutex.unlock();
}
}
}
}
【Qt-MySQL多线程写数据库的一种简单方法---多线程写队列入库】3.这种方法速度上与单线程相比没有明显提升,主要是为了获取多客户端的数据。
4.性能:开了6个1ms为间隔发数据的客户端,内存占用10M左右,CPU占用30%左右,原来是个废U的操作。
文章图片
文章图片
推荐阅读
- 放屁有这三个特征的,请注意啦!这说明你的身体毒素太多
- 爱就是希望你好好活着
- 昨夜小楼听风
- 知识
- 死结。
- 我从来不做坏事
- 烦恼和幸福
- 关于QueryWrapper|关于QueryWrapper,实现MybatisPlus多表关联查询方式
- Linux下面如何查看tomcat已经使用多少线程
- 说得清,说不清