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

项目班——0408

qt的多线程开发

一、并发、并行的概念:

1. 并发:多个任务在同一时间段内交替执行(可能共享同一资源),但不一定同时发生。

核心思想:通过快速切换任务(例如时间片轮转)模拟“同时进行”的效果。

适用场景:单核 CPU 处理多个线程。 I/O 密集型任务(例如同时处理多个网络请求)。

例子:一个人边吃饭边回消息:两种行为交替进行,但同一时刻只做一件事。单核 CPU 通过线程切换运行多个程序。

2. 并行:多个任务真正同时执行,通常依赖多核 CPU 或多台机器。

核心思想:利用物理上的多处理器资源,实现任务的实际并行。

适用场景:多核 CPU 同时运行多个线程。计算密集型任务(例如大规模矩阵运算)。

例子:多个人同时完成不同的工作:每个人独立执行任务。GPU 并行处理图像渲染的多个像素计算。

二、qt的多线程开发

多线程开发:可以近似于同时做事

1、单线程测试例子:

2、问题:程序未响应:

3、主函数内的exec函数概念

exec调用会开启主事件的循环(主线程)

while(1)

{

接受信号——>执行槽函数

接受事件——>执行事件响应

exit(num); //num是程序的返回值

}

可能在接受某个信号时被阻塞住了,不能接受其他事件了,比如刚打开项目就无响应,可能是连接服务器时ip地址写错了,或者连不上服务器

4、改为使用多线程

返回值是一个句柄 _CRTIMP uintptr_t __cdecl _beginthreadex(

void *_Security, //安全级别 可以为空

unsigned _StackSize, //默认栈大小 可以为空

unsigned (__stdcall *_StartAddress) (void *), //函数指针 类外的普通函数

void *_ArgList, //参数列表

unsigned _InitFlag, //挂起还是直接执行

unsigned *_ThrdAddr); //获取id,通过这个获取

改为:

  1. qt信号槽 使用的时候需要注意什么

connect参数:发送对象地址,发送的信号,接收者对象地址,处理槽函数地址,

connect函数的第五个参数:

如果connect函数写了两遍,会导致槽函数执行两遍,如果加上第五个参数,就可以保证只执行一遍

发送信号的对象:必须是Q_OBJECT的子类,类的定义中,必须包含Q_OBJECT宏

  1. 在自己创建的线程里处理主线程内的空间

给ui创建一个getUi方法

pb_test是在主线程内创建的,在自己定义的线程内将其隐藏,会触发隐藏事件,事件循环会出错

因此这里应该发信号,让主线程内的槽函数执行,而不是直接调用界面,更新界面

  1. 因此可以使用Qt内的方式开发,这样会更简洁和方便

Qt多线程开发方法:

(1)可以使用QTthread 创建线程 来执行线程函数

QThread的使用:

[1]头文件

[2]重写这个类:为了可以使用信号槽函数机制,需要加宏 

[3]线程函数void run();  看似没有参数,不过可以通过给属性赋值完成传参

run()函数:

1.是线程函数执行的入口,通过start开启执行这个run函数

2.当线程对象创建时,线程就已经存在了,只是不知道什么时候开始执行

3.直到start时,线程开始执行

4.如果run()没有返回还在执行,调用start什么也不做

[4]线程函数的执行,需要调用start()函数执行

定义对象:

添加声明:

输出线程id:

总结:

(2)可以借助moveToThread将对象转移到另一个线程中,然后执行

相关文章:

项目班——0408

qt的多线程开发 一、并发、并行的概念: 1. 并发:多个任务在同一时间段内交替执行(可能共享同一资源),但不一定同时发生。 核心思想:通过快速切换任务(例如时间片轮转)模拟“同时进…...

【Linux】42.网络基础(2.4)

文章目录 2.3 TCP协议2.3.10 拥塞控制2.3.11 延迟应答2.3.12 捎带应答2.3.13 面向字节流2.3.14 粘包问题2.3.15 TCP异常情况2.3.16 TCP小结2.3.17 基于TCP应用层协议 2.3 TCP协议 2.3.10 拥塞控制 虽然TCP有了滑动窗口这个大杀器, 能够高效可靠的发送大量的数据. 但是如果在刚…...

大模型在直肠癌诊疗全流程预测及应用研究报告

目录 一、引言 1.1 研究背景与目的 1.2 国内外研究现状 1.3 研究方法与创新点 二、大模型预测直肠癌的原理与技术基础 2.1 大模型技术概述 2.2 用于直肠癌预测的数据来源 2.3 模型构建与训练过程 三、术前预测 3.1 肿瘤分期预测 3.1.1 基于影像组学的 T 分期预测模型…...

Ceph块存储

#### 一、Ceph块存储 ##### 镜像快照管理 > 实现数据备份、恢复和测试等操作,而不影响原始数据,提高系统的可靠性和可用性。 shell # 创建镜像 rbd create img1 --size 10G # 映射镜像到本地并格式化挂载 rbd map img1 mkfs -t xfs /dev/rbd0 moun…...

【转载翻译】Open3D和PCL的一些比较

转自个人博客:【转载翻译】Open3D和PCL的一些比较 本人在逛Github时,发现一个解答Open3D和PCL对比的小文章,还挺有参考价值的 原文:https://github.com/LaplaceKorea/investigate_open3d_vs_pcl/blob/main/README.rst#whats-the-s…...

ebpf: CO-RE, BTF, and Libbpf(二)

本文内容主要来源于Learning eBPF,可阅读原文了解更全面的内容。 本文涉及源码也来自于书中对应的github:https://github.com/lizrice/learning-ebpf/ 概述 上篇文章主要讲了CO-RE最关键的一环:BTF,了解其如何记录内核中的数据结…...

RHCE第五章:NFS服务器

一、NFS(network file system) 网络文件系统:在互联网中共享服务器中的文件资源(用于Linux主机共享文件的协议)。 使用nfs服务需要安装:nfs-utils 以及 rpcbind nfs-utils : 提供nfs服务的程序 rpcbind :…...

qt(vs2010) 手动配置moc生成规则

在 Visual Studio 2010 中写QT项目时,有时需要 手动配置 MOC 生成规则 操作步骤: 右键 .h 文件 → Properties。在 Configuration Properties > Custom Build Tool 中: Command Line:"$(QTDIR)\bin\moc.exe" "%(FullPath)…...

mongodb 安装配置

1.下载 官网下载地址:MongoDB Community Download | MongoDB 2.使用解压包 解压包安装:https://pan.baidu.com/s/1Er56twK9UfxoExuCPlJjhg 提取码: 26aj 3.配置环境: (1)mongodb安装包位置: &#xf…...

Java多态课堂练习题

Java多态课堂练习题 题目:动物乐园的多态展示 背景设定: 设计一个动物乐园程序,展示不同类型动物的行为特点,要求使用多态特性实现。 1. 基础类设计(已给出部分代码) // 基类:动物 abstract…...

Android Studio 实现自定义全局悬浮按钮

文章目录 一、基础实现方案1. 使用 WindowManager 实现全局悬浮窗2. 布局文件 (res/layout/floating_button.xml)3. 圆形背景 (res/drawable/circle_background.xml)4. 启动服务 二、权限处理1. AndroidManifest.xml 中添加权限2. 检查并请求权限 三、高级功能扩展1. 添加动画效…...

Android Studio 中文字大小的单位详解

文章目录 一、Android 中的尺寸单位1. dp (Density-independent Pixels - 密度无关像素)2. sp (Scale-independent Pixels - 可缩放像素)3. px (Pixels - 像素)4. pt (Points - 磅)5. mm (Millimeters - 毫米) 和 in (Inches - 英寸) 二、文字大小单位的最佳实践1. 始终使用 sp…...

Project ERROR: liblightdm-qt5-3 development package not found问题的解决方法

问题描述:使用make命令进行ukui-greeter-Debian构建时出现Project ERROR: liblightdm-qt5-3 development package not found错误,具体如图: 问题原因:缺乏liblightdm-qt5-3 development软件包 解决方法:安装liblightd…...

基于QT(C++)+SQLServer实现(WinForm)超市管理系统

超市库存管理系 使用 QT 开发,SQLserver 数据库配置 ODBC 数据源:QSQLServer 超市库存管理系统需求规格说明书 1 引言 校园超市的库存物资管理往往是很复杂、很繁琐的。由于所掌握的物资种类众多,订货、管理的渠道各有差异,各个校园超市之间的管理体制…...

06 - 多线程-JUC并发编程-原子类(二)

上一章,讲解java (java.util.concurrent.atomic) 包中的 支持基本数据类型的原子类,以及支持数组类型的原子类,这一章继续讲解支持对实体类的原子类,以及原子类型的修改器。 还有最后java (java…...

HTML:网页的骨架 — 入门详解教程

HTML:网页的骨架 — 入门详解教程 HTML(HyperText Markup Language,超文本标记语言)是构建网页的基础语言,负责定义网页的结构和内容。无论是简单的个人博客,还是复杂的企业网站,HTML都是不可或…...

Oracle 分析函数(Analytic Functions)

Oracle 的分析函数(Analytic Functions)是一类特殊的函数,用于在查询结果的窗口(window)内执行计算(如排名、累计求和、移动平均等),不会聚合结果行,而是为每一行返回一个…...

全新电脑如何快速安装nvm,npm,pnpm

以下是全新电脑快速安装 nvm、npm 和 pnpm 的详细步骤,覆盖 Windows/macOS/Linux 系统: 一、安装 nvm(Node Version Manager) 1. Windows 系统 下载安装包: 访问 nvm-windows 官方仓库,下载 nvm-setup.ex…...

风丘年度活动:2025年横滨汽车工程展览会

| 展会简介: 2025年横滨汽车工程展览会,是由日本汽车工程师学会(JSAE)精心主办的一场行业盛会。预计届时将汇聚超550家参展商,设置1300个展位,展览面积超过20000平方米。展会受众广泛,面向汽车…...

springBoot接入文心一言

文章目录 效果接入步骤项目接入配置类:WenXinYiYan前端vue代码js代码 后端mapper层service层controller层 测试代码 效果 先来看一下最后实现的效果 (1)未点击前的功能页面 (2)点击后的页面 (3&#xff…...

力扣HOT100——无重复字符的最长子字符串

给定一个字符串 s ,请你找出其中不含有重复字符的 最长 子串 的长度。 示例 1: 输入: s "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。 思路: 滑动窗口。遍历整个字符串&#xff0c…...

Python高级爬虫之JS逆向+安卓逆向1.4节:数据运算

目录 引言: 1.4.1 赋值运算 1.4.2 算术运算 1.4.3 关系运算 1.4.4 逻辑运算 1.4.5 标识运算 1.4.6 爬虫接单赚了10块钱 引言: 大神薯条老师的高级爬虫安卓逆向教程: 这套爬虫教程会系统讲解爬虫的初级,中级,高…...

微信小程序无缝衔接弹幕效果纯CSS

效果图 主要运用蒙层、动画延迟 .wxml <view wx:for"{{detail}}" wx:key"{{index}}" class"container" style"--s:{{item.s}}s" ><view wx:for"{{2}}" wx:key"{{index}}" class"container-item&q…...

vue3:十一、主页面布局(增加左上角系统名称)

一、实现效果 侧边栏可平滑折叠/展开&#xff0c;带有过渡动画 折叠时隐藏Logo文字&#xff0c;只显示图标 优化滚动区域&#xff0c;避免标题栏随菜单滚动 解决折叠/展开时出现的滚动条闪烁问题 二、 实现 1、可以使用 SCSS&#xff08;Sass 的一种语法&#xff09; 首先…...

孟加拉slot游戏出海代投FB脸书广告策略

对于在孟加拉进行游戏出海代投的广告策略&#xff0c;可以考虑以下方面&#xff1a; 定位目标受众&#xff1a;确定目标受众群体&#xff0c;包括他们的年龄、兴趣爱好、消费习惯等信息&#xff0c;以便精准定位广告投放对象。 优质创意设计&#xff1a;设计吸引人眼球的广告素…...

算法题(125):子集

审题&#xff1a; 本题需要我们将题目给定数组的所有子集枚举起来 思路&#xff1a; 方法一&#xff1a;二进制枚举 枚举对象&#xff1a;0到1<<n -1的整形数据 枚举顺序&#xff1a;顺序 枚举方式&#xff1a;二进制枚举 在解释二进制枚举的方法之前&#xff0c;我们先看…...

深度学习中的数值稳定性处理详解:以SimCLR损失为例

文章目录 1. 问题背景SimCLR的原始公式 2. 数值溢出问题为什么会出现数值溢出&#xff1f;浮点数的表示范围 3. 数值稳定性处理方法核心思想数学推导 4. 代码实现分解代码与公式的对应关系 5. 具体数值示例示例&#xff1a;相似度矩阵方法1&#xff1a;直接计算exp(x)方法2&…...

查看linux中是否安装了tiktoken

在 Linux 中检查 tiktoken 是否安装的完整方法‌ 通过 pip 命令检查‌ 查看已安装的 Python 包列表‌&#xff1a; pip list | grep tiktoken 若输出包含 tiktoken&#xff0c;则表示已安装‌。 获取包详细信息‌&#xff1a; pip show tiktoken 若显示包版本、安装路径…...

从源码看无界 1.0.28:为何说它是 qiankun 的 “轻量化替代方案”(二)

我们接着上一节的《从源码看无界 1.0.28:为何说它是 qiankun 的 “轻量化替代方案”》内容继续往下。 生命周期图 sandbox.active 方法 我们找到 packages/wujie-core/src/sandbox.ts 文件的第 275 行: //.../** 激活子应用* 1、同步路由* 2、动态修改iframe的fetch* 3、准…...

SQL注入之时间盲注攻击流程详解

目录 一、时间盲注原理 二、完整攻击流程 1. 注入点确认 2. 基础条件判断 3. 系统信息收集 &#xff08;1&#xff09;获取数据库版本 &#xff08;2&#xff09;获取当前数据库名 4. 数据提取技术 &#xff08;1&#xff09;表名枚举 &#xff08;2&#xff09;列名猜…...

【NIO番外篇】之组件 Selector

目录 一、Selector&#xff1a;网络世界的“机场管制塔” / “总机接线员” &#x1f4e1;什么是 Selector&#xff1f;它的作用是什么&#xff1f; 二、Selector 的工作流程&#xff1a;塔台是怎么指挥飞机的&#xff1f;1. 飞机就位 (准备 Channel)&#xff1a;2. 向塔台报到…...

对接印度尼西亚股票数据源API

随着对东南亚市场的关注增加&#xff0c;获取印度尼西亚&#xff08;IDX&#xff09;股票市场的实时和历史数据变得尤为重要。本文将指导您如何使用Spring Boot框架对接一个假定的印尼股票数据源API&#xff08;例如&#xff0c;StockTV&#xff09;&#xff0c;以便开发者能够…...

SQL(9):创建数据库,表,简单

1、创建数据库&#xff0c;一句SQL语句搞定 CREATE DATDBASE 数据库名 CREATE DATABASE my_db;2、创建表 CREATE TABLE 表名(字段名 类型) CREATE TABLE Persons ( PersonID int, LastName varchar(255), FirstName varchar(255), Address varchar(255), City varchar(255)…...

医学成像中的对比语言-图像预训练模型(CLIP):一项综述|文献速递-深度学习医疗AI最新文献

Title 题目 CLIP in medical imaging: A survey 医学成像中的对比语言-图像预训练模型&#xff08;CLIP&#xff09;&#xff1a;一项综述 01 文献速递介绍 尽管在过去十年中视觉智能领域取得了重大进展&#xff08;何恺明等人&#xff0c;2016&#xff1b;塔尔瓦宁和瓦尔…...

KEGG注释脚本kofam2kegg.py--脚本010

采用kofam结合kegg官网htxt进行注释 用法&#xff1a; python kofam2kegg.py kofam.out ath00001.keg my_kegg_output code: import sys from collections import defaultdictdef parse_kofam_file(kofam_file):ko_to_genes defaultdict(list)with open(kofam_file) as f:…...

hevc编码芯片学习-VLSI实现

在Fan等工作中&#xff0c;根据特定算法设计了整像素运动估计引擎&#xff0c;最终的BD-Rate损失非常小&#xff0c;但是硬件开销比较大&#xff0c;搜索算法缺少灵活性&#xff0c;本次设计优化了硬件设计架构&#xff0c; 微代码 取像素 压缩 水平参考像素存储器 寻址控制 转…...

选导师原理

总述 一句话总结&#xff1a;是雷一定要避&#xff0c;好的一定要抢。方向契合最好&#xff0c;不契合适当取舍。 首先明确自身需求&#xff1a; 我要学东西&#xff01;青年导师&#xff0c;好沟通&#xff0c;有冲劲&#xff0c;高压力。 我要摆烂&#xff01;中老年男性教…...

2.5亿像素卷帘快门CMOS大幅面扫描相机

规格说明书 主要特征 ◎ 卷帘快门CMOS 传感器 ◎ 2.46 亿像素分辨率 ◎ 全分辨率最高帧率达5fps ◎ 高灵敏度及低噪声 ◎ ROI 区域设置 ◎ 曝光时间灵活控制&#xff08;外触发&#xff0c;自由运行&#xff09; ◎ 输出像素格式8/10/12bit 可选 ◎ 自动坏像素校正、平场校正…...

CD27.【C++ Dev】类和对象(18)友元和内部类

目录 1.友元 友元函数 几个特点 友元类 格式 代码示例 2.内部类(了解即可) 计算有内部类的类的大小 分析 注意:内部类不能直接定义 内部类是外部类的友元类 3.练习 承接CD21.【C Dev】类和对象(12) 流插入运算符的重载文章 1.友元 友元函数 在CD21.【C Dev】类和…...

企业级硬盘的测试流程

测试硬盘流程 找一个有Linux操作系统的服务器&#xff0c;配置好管理ip的接口&#xff0c;连接上linux服务器&#xff0c;执行lsblk命令来查看设备的情况 使用mkfs命令格式化要测试的硬盘&#xff0c;格式化之前务必把数据进行备份&#xff0c;可以使用blkid命令查看硬盘的文件…...

std::enable_shared_from_this 模板类的作用是什么?

我们以Connection类的shared智能指针为例说明&#xff0c;std::enable_shared_from_this<Connection> 是一个标准库模板类&#xff0c;它的作用是让一个类的对象能够安全地生成指向自身的 std::shared_ptr&#xff0c;即使该对象最初是通过普通指针或其他方式创建的。 作…...

鸿蒙开发-ArkUi控件使用

2.0控件-按钮 2.1.控件-文本框 Text(this.message).fontSize(40) // 设置文本的文字大小.fontWeight(FontWeight.Bolder) // 设置文本的粗细.fontColor(Color.Red) // 设置文本的颜色------------------------------------------------------------------------- //设置边框Tex…...

大数据学习栈记——MongoDB编程

本文介绍NoSQL技术&#xff1a;MongoDB用Java来连接数据库&#xff0c;执行常见的数据库操作&#xff0c;使用环境&#xff1a;IntelliJ IDEA、Ubuntu24.04。 配置Maven 我们需要使用“MongoDB Driver”&#xff0c;所以先打开“MongoDB Java Driver”项目&#xff0c;但是提…...

体系结构论文(六十七):A Machine-Learning-Guided Framework for Fault-Tolerant DNNs

A Machine-Learning-Guided Framework for Fault-Tolerant DNNs DATE 2024 研究动机 深度神经网络&#xff08;DNN&#xff09;虽然对某些扰动具有天然的容错性&#xff0c;但在面对硬件故障&#xff08;如软错误、老化、环境干扰等&#xff09;时&#xff0c;仍会出现输出错…...

qt designer 创建窗体选择哪种屏幕大小

1. 新建窗体时选择QVGA还是VGA 下面这个图展示了区别 这里我还是选择默认&#xff0c;因为没有特殊需求&#xff0c;只是在PC端使用...

游戏引擎学习第225天

只能说太难了 回顾当前的进度 我们正在进行一个完整游戏的开发&#xff0c;并在直播中同步推进。上周我们刚刚完成了过场动画系统的初步实现&#xff0c;把开场动画基本拼接完成&#xff0c;整体效果非常流畅。看到动画顺利呈现&#xff0c;令人十分满意&#xff0c;整个系统…...

sql工具怎么选最适合自己的?

sql工具怎么选&#xff1f; 为什么大多数主流工具又贵又难用&#xff1f;有没有一款免费好用的sql工具&#xff1f;像大多数朋友经常用的sql工具应该都遇到过这种情况&#xff0c;用着用着收到了来自品牌方的律师函&#xff0c;或者处理数据时经常卡死&#xff0c;再或者不支持…...

css实现一键换肤

实现一键换肤的时候&#xff0c;我们除了动态替换引用的css文件&#xff0c;还可以通过使用css变量的方式&#xff0c;达到所需效果。 首先我们来了解css变量&#xff0c;css变量以--开头&#xff0c;引用时va(--变量名)&#xff0c;例 :root{--default-color: #fff; } .box{b…...

波束形成(BF)从算法仿真到工程源码实现-第八节-波束图

一、概述 本节对MVDR、LCMV、LMS等算法的波束图进行仿真。 二、MVDR代码仿真 2.1 mvdr代码 clc; clear; M 18; % 天线数 lambda 10; d lambda / 2; L 100; %快拍数 thetas [10]; % 期望信号入射角度 thetai [-30 30]; % 干扰入射角度 n [0:M-1]; vs exp(-1j * 2…...

静态代码深度扫描详解

静态代码深度扫描是一种通过分析源代码结构、语法、语义及潜在逻辑&#xff0c;在不运行程序的情况下全面检测代码缺陷、安全漏洞和质量问题的技术。它通过结合数据流分析、控制流分析、符号执行等高级技术&#xff0c;实现对代码的深度理解&#xff0c;帮助开发团队在早期发现…...