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纯