当前位置: 首页 > article >正文

Qt-系统QThread多线程介绍使用(62)

目录

描述

相关函数

使用

准备工作

重写run 

发送信号

创建一个线程

启动线程

计时器运行流程

多线程运用场景


描述

qt多线程和Linux多线程类似

Linux有自己的一套多线程 API,Qt 也有着自己封装的多线程 API 

QT多线程参考了JAVA中的设计方式

QThread创建线程要重新run函数

这种做法在 C++ 中并不常见

 

相关函数

run()线程的⼊⼝函数..
start()通过调⽤ run() 开始执⾏线程。操作系统将根据优先级参数调度线程。如果线程已
经在运⾏,这个函数什么也不做。
currentThread()返回⼀个指向管理当前执⾏线程的 QThread的指针。
isRunning()如果线程正在运⾏则返回true;否则返回false。
sleep() / msleep() /
usleep()
使线程休眠,单位为秒 / 毫秒 / 微秒
terminate()终⽌线程的执⾏。线程可以⽴即终⽌,也可以不⽴即终⽌,这取决于操作系统的调
度策略。在terminate() 之后使⽤ QThread::wait() 来确保。
finished()当线程结束时会发出该信号,可以通过该信号来实现线程的清理⼯作。

 

使用

创建一个定时器

但是由于 Qt 的对于修改界面的保护机制,我们只能在主线程中进行修改

 

准备工作

ui中拉取一个定时器

 

重写run 

创建一个类 

 

发送信号

 

创建一个线程

启动线程

 

计时器运行流程

多线程运用场景

多线程是为了充分利用 CPU 的计算资源,特别是多核CPU的,现在的电脑基本上是多线程的

用户体验和速度的取舍

在大部分情况下,客户端的用户体验要大于速度 

通常多线程都是用于等待 IO 的操作,这类的事件通常很消耗时间

因此对于qt中的多线程运用场景一般还是中处理 密集IO 操作上


http://www.kler.cn/a/349775.html

相关文章:

  • 16.Word:石油化工设备技术❗【28】
  • 【MQ】RabbitMq的可靠性保证
  • 05-机器学习-数据标注
  • Mac m1,m2,m3芯片使用nvm安装node14报错
  • 关于圆周率的新认知 - 2
  • 如果我想设计一款复古风格的壁纸,应该选什么颜色?
  • 通过阿里云【Milvus】快速实现向量检索
  • springboot中按日期生成当天唯一编码
  • 猫头虎 分享:Python库 aiohttp 的简介、安装、用法详解入门教程
  • 98. UE5 GAS RPG 实现技能眩晕效果
  • 转行AI产品经理:高薪诱惑,年薪90万不是梦!
  • 一文了解:LLM Dropout
  • STM32 QSPI接口驱动GD/W25Qxx配置简要
  • Django发送邮件代理服务器配置
  • Python实现文本数据可视化:构建动态词云
  • 《使用Gin框架构建分布式应用》阅读笔记:p1-p19
  • 移动硬盘文件误删怎么办?数据恢复全攻略
  • 用这条Prompt构建CoT+PoT验证器评估LLM输出,显著提高LLM推理准确性和一致性
  • uniapp引入ThorUI的方法
  • 国外电商系统开发-运维系统操作脚本
  • 哪款宠物空气净化器性价比高?希喂、米家和范罗士哪款更好?
  • do…while循环语句的使用
  • C# WinForm 用名字name字符串查找子控件
  • 数智时代的新航向:The Open Group 2024生态系统架构·可持续发展年度大会邀您共筑AI数字新时代
  • 技术总结(五)
  • DC系列靶机-DC2