qt下编写linux消息队列,C++11消息队列 + Qt线程池 + QRunnable执行任务简单模型

本文介绍了如何在Qt环境下使用C++11消息队列结合Qt线程池(QThreadPool)来实现任务执行。通过创建QRunnable对象并在run()方法中消费任务队列,保证了线程安全。示例代码展示了如何添加任务到队列,设置线程池的最大线程数,并监控线程执行过程。
摘要由CSDN通过智能技术生成

1、模板类queue,包含头文件中,是一个FIFO队列。

queue.push():在队列尾巴增加数据

queue.pop():移除队列头部数据

queue.font():获取队列头部数据的引用

...

2、Qt库的线程池,QThreadPool

QThreadPool.setMaxThreadCount():设置线程池最大线程数

QThreadPool.start(new QRunnable(..)):开启线程池调用QRunnable

3、QRunnable执行任务

void run();//重写虚函数,在里面消费任务队列

setAutoDelete(true)//默认就是true,消费结束自动回收内存

4、代码

run.h

#ifndef RUN_H#define RUN_H#include#include#include#include

structMyString

{

std::stringvalueStr;

};class Run : public QObject , publicQRunnable

{

Q_OBJECTpublic:

Run()= default;

Run(const MyString&myString);protected:~Run() = default;voidrun();

signals:publicslots:private:

MyString myString;

};#endif //RUN_H

说明:MyString结构体代替实际项目中的任务,Run接口的run纯

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值