继承QThread类是创建线程的一种方法,另一种就是继承QObject类。继承QObject类更加灵活。它通过QObject::moveToThread()方法,将一个QObeject的类转移到一个线程里执行。恩,不理解的话,我们下面也画个图捋一下。

通过上面的图不难理解,首先我们写一个类继承 QObject,通过 QObject::moveToThread()方法将它移到一个QThread线程里执行。那么可以通过主线程发送信号去调用QThread线程的方法如上图的fun4(),fun5()等等。这些方法都是在QThread线程里执行的。

## 应用实例

本例目的:快速了解继承 QObject 类线程的使用。

本例通过QObject类继承线程,然后在MainWindow类里使用。通

过点击一个按钮开启线程。另一个按钮点击关闭线程。另外通过加锁的操作来安全的终止一个线程。(我们可以通过QMutexLocker可以安全的使用QMutex以免忘记解锁。)在我们谈谈为什么需要加锁来终止一个线程?因为quit()和exit()方法都不会中途终止线程。要马上终止一个线程可