Qt-线程-创建线程的三种方法

文章目录

  • [1: 派生于QThread](#1: 派生于QThread)
  • [2: 派生与QRunable](#2: 派生与QRunable)
  • [3: moveToThread](#3: moveToThread)

1: 派生于QThread

派生于Qthread 是创建的Qt创建线程的方法 ,重写虚函数void QThread::run(),在run写具体的内容,外部通过start调用,即可执行线程体run()

注意 :派生与QThread的类,构造函数属于主函数,run函数属于子线程,可以通过打印线程id来判断

2: 派生与QRunable

派生于QRunable,重写run方法,在run方法里面处理其他任务,调用的时候需要借助线程池,

MyThread * pth = new MyThread()

QThreadPool::globalInstance()->start(pTh);

注意 :

这种新建线程的方法最大的缺点就是:不能使用信号与槽机制,因为QRunnable不是继承自QObject ,但是这种方法的好处是,可以让QThreadPool来管理线程,QThreadPool会自动清理QRunnable对象

3: moveToThread

派生于QObject,使用moveToThread方法

将QThread对象作为 私有成员,在构造函数里面moveToThread,然后启动线程,

This->moveToThread(&m_th);

m_th.start();

相关推荐
gCode Teacher 格码致知13 分钟前
Javascript提高:自定义的占位符替换-由Deepseek产生
开发语言·javascript·ecmascript
是个西兰花18 分钟前
C++11:智能指针
开发语言·c++·智能指针·rall
摇滚侠27 分钟前
Java 零基础全套视频教程,面向对象(高级),笔记 105-120
java·开发语言·笔记
CN-Dust35 分钟前
【C++专题】输出cout例题
开发语言·c++
时空系36 分钟前
第6篇:多维数据盒——管理大量数据 python中文编程
开发语言·python·ai编程
charlie11451419139 分钟前
嵌入式Linux驱动开发(7) 从虚拟设备到真实硬件 —— LED驱动硬件基础
linux·开发语言·驱动开发·内核·c
小短腿的代码世界1 小时前
QCefView深度解析:Qt应用中嵌入Chromium浏览器的终极方案
开发语言·qt
Reese_Cool1 小时前
【STL】蓝桥杯/天梯赛终极杀器!10个C++字符串核心技巧,暴力破解高频考点
开发语言·c++·蓝桥杯·stl
曹牧1 小时前
Java Web:DispatcherServlet
java·开发语言·前端
hehelm1 小时前
C++ 模拟实现 AVL 树
开发语言·c++