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

news2024/11/26 9:27:59

目录

描述

相关函数

使用

准备工作

重写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.coloradmin.cn/o/2210532.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

总结ES6—ES13新特性

目录 ES6let/const不同特性共同特性不能重复声明作用域提升问题暂时性死区( temporal dead zone)不添加window形成块级作用域 三者区别 模板字符串解构赋值数组的解构对象的解构 默认参数箭头函数展开运算符数值表示SymbolSetWeakSetMapWeakMapProxy 和 …

Linux Ubuntu dbus CAPI ---- #include<dbus.h>出现“无法打开源文件dbus/xxx.h“的问题

一、确保已安装dbus库和CAPI sudo apt-get install libdbus-1-dev 二、在c_cpp_properties.json的includePath中是否配置了dbus库依赖文件所在的路径 三、编译一个简单的dbus代码,在编译过程中只要出现.h文件找不到的情况,就使用下列命令找到.h文件路径…

【2024最新】基于springboot+vue的体质数据分析及可视化lw+ppt

作者:计算机搬砖家 开发技术:SpringBoot、php、Python、小程序、SSM、Vue、MySQL、JSP、ElementUI等,“文末源码”。 专栏推荐:SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏:Java精选实战项…

【设计模式】揭秘Spring框架:设计模式如何驱动代码重用与扩展性的最佳实践

作者:后端小肥肠 🍇 我写过的文章中的相关代码放到了gitee,地址:xfc-fdw-cloud: 公共解决方案 🍊 有疑问可私信或评论区联系我。 🥑 创作不易未经允许严禁转载。 姊妹篇: 【设计模式】万字详解…

大数据毕业设计选题推荐-招聘信息数据分析系统-Python数据可视化-Hive-Hadoop-Spark

✨作者主页:IT研究室✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Python…

02.07.链表相交 最简方法之一

面试题 02.07. 链表相交 已解答 简单 相关标签 相关企业 提示 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回 null 。 图示两个链表在节点 c1 开始相交: 题目数据 保证 整个链…

大家用 Flutter 做什么?Getx 遥遥领先!

大家用 Flutter 做什么?Getx 遥遥领先! 视频 https://youtu.be/hXRgZwqdWzI https://www.bilibili.com/video/BV1VDHhedETz/ 前言 原文 大家用 Flutter 做什么? Reddit 上的一个关于 flutter 社区投票,询问大家用 flutter 做什…

STM32—W25Q64

1.W25Q64简介 W25Oxx系列是一种低成本、小型化、使用简单的非易失性存储器 易失性存储器 般就是SRAM、DRAM等非易失性存储器 般就是E2PROM、Flash等常应用于数据存储、字库存储、固件程序存储等场景存储介质:Nor Flash(闪存)时钟频率:80MHz / 160MHz(…

PyTorch中Tensor的存储结构

PyTorch中Tensor的存储结构 Tensor数据的类型 Tensor 中数据主要有下面两种类型: meta data:元数据,也就是描述数据特征的数据,例如 shape、dtype、device、stride等等raw data:数据本身,我们可以通过 t…

【漏洞复现】SpringBlade menu/list SQL注入漏洞

》》》产品描述《《《 致远互联智能协同是一个信息窗口与工作界面,进行所有信息的分类组合和聚合推送呈现。通过面向角色化、业务化、多终端的多维信息空间设计,为不同组织提供协同门户,打破组织内信息壁垒,构建统一协同沟通的平台。 》》》漏洞描述《《《 致远互联 FE协作办公…

【尚硅谷】FreeRTOS学笔记(更新中更新时间2024.10.12)

在网上看到的一段很形象的描述,放在这里给大家娱乐一下。 裸机开发:n个人拉屎,先进去一个拉完,下一个再来。看门狗:如果有人拉完屎还占着,茅坑刷视频,把他拖出去中断系统:n个人拉屎&…

Qt基础对话框QDialog

模态显示对话框 调用exec方法可以使得对话框模态显示,但是一个阻塞函数 [virtual slot] int QDialog::exec() 对话框的三个槽函数 accept [virtual slot] void QDialog::accept(); reject [virtual slot] void QDialog::reject() done [virtual slot] void QDia…

搭建mongodb单机部署-认证使用

搭建mongodb单机部署-认证使用 实现思路 先将配置文件配置好,使用不用认证的启动命令启动docker,然后创建账号并制定角色。在使用开启认证的命令重新启动容器就好。 这里我并没有说先停止容器,删掉容器重新创建容器。是因为我的启动命令中…

libaom 源码分析系列:noise_model.c 文件

libaom libaom 是 AOMedia(开放媒体联盟)开发的一个开源视频编解码器库,它是 AV1 视频压缩格式的参考实现,并被广泛用于多种生产系统中。libaom 支持多种功能,包括可扩展视频编码(SVC)、实时通信(RTC)优化等,并定期进行更新以提高压缩效率和编码速度 。 libaom 的一些…

豆包MarsCode体验有京东卡和现金

https://www.marscode.cn/events/s/iBpts1oT/ 先登录注册 然后到VSCODE里,在最左侧导航栏处看到EXTEBSIONS点一下(快捷键CtrlShiftX),然后搜索MarsCode,并安装插件。 安装后登录体验一次问答即可。然后回到活动页即…

电瓶车的无钥匙启动功能为用户带来了极大的便利

电瓶车智能钥匙一键启动系统是一种依赖智能钥匙和一键启动按钮的启动方式。 智能钥匙和一键启动系统的结合使用提高了车辆的安全性,防止了未经授权的启动。 携带智能钥匙进入车辆,按下一键启动按钮,车辆通过感应智能钥匙存在而启动。 一键…

数据结构-C语言顺序栈功能实现

栈 栈&#xff1a;类似于一个容器&#xff0c;如我们生活中的箱子&#xff0c;我们向箱子里放东西&#xff0c;那么最先放的东西是最后才能拿出来的 代码实现 #include <stdio.h> #include <stdlib.h>#define MAX_SIZE 100typedef struct {int* base; // 栈底指针…

【亲测可行】ubuntu根目录空间不够,将其它盘挂载到/opt

文章目录 &#x1f315;缘起&#x1f315;从其它盘压缩出一个未分配的空间&#x1f319;从windows系统中压缩出个未分配的空间&#x1f319;从linux系统中压缩出个未分配的空间 &#x1f315;右键点击未分配的盘新建分区&#x1f315;查看分区&#x1f315;先将新分区挂载到/mn…

VMware vCenter Server 6.7U3v 发布下载 - ESXi 集中管理软件

VMware vCenter Server 6.7U3v 发布下载 - ESXi 集中管理软件 集中式控制 vSphere 环境 请访问原文链接&#xff1a;https://sysin.org/blog/vmware-vcenter-6-7/ 查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&#xff1a;sysin.org VMware vCenter Server 是…

爬虫post收尾以及cookie加代理

爬虫post收尾以及cookie加代理 目录 1.post请求收尾 2.cookie加代理 post收尾 post请求传参有两种格式&#xff0c;载荷中有请求载荷和表单参数&#xff0c;我们需要做不同的处理。 1.表单数据&#xff1a;data字典传参 content-type: application/x-www-form-urlencoded; …