基于Qt 多线程(继承 QObject 的线程)

基于Qt 多线程(继承 QObject 的线程)_第1张图片

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

基于Qt 多线程(继承 QObject 的线程)_第2张图片

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

## 应用实例

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

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

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

你可能感兴趣的:(Qt,高级开发工程师,qt,多线程,QObject,QThread,c++)