IT评测·应用市场-qidao123.com技术社区

标题: qt QRunnable 与 QThreadPool详解 [打印本页]

作者: 九天猎人    时间: 2024-11-12 04:56
标题: qt QRunnable 与 QThreadPool详解
1. 概述

QRunnable是全部runnable对象的基类,它表示一个使命或要执行的代码。开发者需要子类化QRunnable并重写其run()函数来实现具体的使命逻辑。而QThreadPool则是一个管理QThread聚集的类,它资助减少创建线程的成本,通过管理和循环利用单独的QThread对象来执行使命队列中的使命。每个Qt应用步调都有一个全局QThreadPool对象,可以通过调用globalInstance()来访问。
2. 重要方法




  1. #include <QCoreApplication>
  2. #include <QThreadPool>
  3. #include <QRunnable>
  4. #include <QDebug>
  5. #include <QThread>
  6. // 定义一个QRunnable的子类
  7. class MyTask : public QRunnable
  8. {
  9. public:
  10.     void run() override
  11.     {
  12.         qDebug() << "MyTask is running in thread:" << QThread::currentThread();
  13.         // 在这里执行具体的任务逻辑
  14.     }
  15. };
  16. int main(int argc, char *argv[])
  17. {
  18.     QCoreApplication a(argc, argv);
  19.     // 获取全局QThreadPool对象
  20.     QThreadPool *threadPool = QThreadPool::globalInstance();
  21.     // 创建一个MyTask对象并启动它
  22.     MyTask *task = new MyTask();
  23.     threadPool->start(task);
  24.     // 等待所有任务完成(在这个简单示例中,我们只有一个任务)
  25.     threadPool->waitForDone();
  26.     return a.exec();
  27. }
复制代码


以为有资助的话,打赏一下呗。。
           


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 IT评测·应用市场-qidao123.com技术社区 (https://dis.qidao123.com/) Powered by Discuz! X3.4