qt通过继承实现线程的方法有两种
- 继承
QThread
,然后重写run
函数实现多线程- 继承
QObject
,使用moveToThread
函数实现多线程
本文介绍第一种的创建、使用与退出。
一、QThread类的run介绍
1、QThread::run函数的使用
QThread 是用来管理线程的,它所依附的线程和它管理的新线程并不是同一个东西QThread 所依附的线程,就是执行创建QThread的线程。也就是咱们这儿的主线程,QThread 管理的新线程,就是 run 启动的线程。
所以总结一句话:QThread
只有run
函数是在新线程里的,其他所有函数都在QThread
生成的线程里
那么就抛出两个问题
1.QThread的对象依附在主线程中,次线程的slot函数会在主线程中执行,而不是次线程。除非:(不建议这样做)
- QThread 对象通过movetoThread依附到次线程中(