QThread 怎么实现并行任务
时间: 2024-01-26 11:06:18 浏览: 65
QThread 是 Qt 框架中用于多线程编程的类,可以用来实现并行任务。下面是一个简单的例子,演示了如何使用 QThread 实现并行任务:
```cpp
#include <QCoreApplication>
#include <QThread>
#include <QDebug>
// 自定义的工作线程类
class WorkerThread : public QThread
{
public:
void run() override {
// 在这里执行并行任务的代码
for (int i = 0; i < 10; ++i) {
qDebug() << "Task" << i << "is running in thread" << currentThread(); }
}
};
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
// 创建并启动工作线程
WorkerThread workerThread;
workerThread.start();
// 继续执行主线程的其他任务
for (int i = 0; i < 5; ++i) {
qDebug() << "Main thread is running";
}
// 等待工作线程执行完毕
workerThread.wait();
return a.exec();
}
```
这个例子创建了一个继承自 QThread 的自定义工作线程类 WorkerThread。在该类中重写了 run() 方法,在这个方法中可以编写并行任务的代码。在主函数中,创建了一个 WorkerThread 对象,通过调用 start() 方法来启动工作线程。主线程会继续执行接下来的任务,而工作线程会同时执行并行任务。通过调用 wait() 方法,主线程会等待工作线程执行完毕后再结束程序。
这只是一个简单的示例,实际的并行任务可能涉及更复杂的逻辑和线程间的通信。在实际应用中,你可能需要考虑线程同步、数据共享等问题。