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();

相关推荐
云雀衔光7 小时前
Java Spring AI MCP:在 Spring 里把 AI 接上你的业务系统
java·开发语言·人工智能·后端·测试工具·spring
重生之小比特7 小时前
【Java SE】数据类型与变量
java·开发语言·python
Yeniden7 小时前
Java 后端从零到企业级:第1篇 Java 基础语法——变量、数据类型与运算符
java·开发语言·apache
luj_17687 小时前
罚球线右移破防新策略
c语言·开发语言·网络·经验分享·算法
legendary_1638 小时前
PD‑SINK芯片在无协议后端负载中的工程应用
c语言·开发语言·人工智能·智能手机·计算机外设
Nuanyt8 小时前
JVM常见核心知识梳理02 类加载 字节码技术 双亲委派 Java内存模型 JMM 并发底层 volatile synchronized 常见排障与调优工具
java·开发语言·jvm
liliangcsdn8 小时前
IC计算-前向/远期收益计算和代码示例
开发语言·python·pandas
小溪学编程8 小时前
Java ListIterator 接口详解:双向遍历与列表修改的利器
java·开发语言·windows
影视飓风TIM8 小时前
C++11 新特性:Lambda表达式、std::function与std::bind
开发语言·c++
sbjdhjd8 小时前
在 8 字符、字母数字过滤与 PHP 版本差异下复盘临时文件命令执行链 | (8字符绕过)
android·java·开发语言·安全·web安全·数据挖掘·php