Qt QThread 两种线程管理方法

在 Qt 中,QThread 有两种常见的用法,分别对应不同的线程管理模型。这两种方法各有优缺点,适用于不同的场景:


1. 子类化 QThread(继承 QThread,重写 run() 方法)

这是传统的线程用法,类似于 Java 或 C++ 标准库中的线程模型。通过继承 QThread 并重写 run() 方法,将需要在子线程中执行的代码放在 run() 中。

步骤:
  1. 创建子类:继承 QThread,重写 run() 方法。
  2. 启动线程:实例化子类对象,调用 start() 启动线程。
  3. 线程生命周期run() 方法执行完毕后线程自动退出。
示例代码:
class WorkerThread : public QThread {
   
    Q_OBJECT
protected:
    void run() override {
   
        // 子线程中执行的代码
        for (int i = 0; i < 5; ++i) {
   
            qDebug() << "Working in thread" << QThread::currentThreadId

你可能感兴趣的:(qt,开发语言)