基于Qt的多线程并行和循序运行实验Demo
致谢(Acknowledgement):
感谢Youtube博主Qt With Ketan与KDAB精心录制的Qt多线程处理应用教程,感谢Bilibili博主爱编程的大丙对Qt多线程与线程池内容深入浅出的讲解。
一、计算机线程相关概念
线程概念[1]:
在计算机科学中,执行线程是可以由调度程序(通常为操作系统的一部分)独立管理的编程指令的最小序列,其被包含在进程之中,是进程中的实际运作单位。
多线程概念[2]:
在计算机体系结构中,多线程是中央处理器(CPU)或多核处理器中的单个内核提供多个执行线程的能力。多线程技术,即每一个线程都代表一个进程内的一个独立执行上下文序列。
进程概念[3-4]:
在计算机科学中,进程是计算机中已运行程序的实体。进程曾经是分时系统的基本运作单位;在面向进程设计的系统(如早期的UNIX,Linux 2.4及更早的版本)中,进程是程序的基本执行实体;在面向线程设计的系统(如当代多数操作系统、Linux 2.6及更新的版本)中,进程本身不是基本运行单位,而是线程的容器。
程序本身只是指令、数据及其组织形式的描述,进程才是程序的真正运行实例。若干进程有可能与同一个程序相关联,并且每个进程皆可以同步或异步(并行或循序)的方式独立运行。现代计算机系统可在同一段时间内以进程的形式将多个程序加载到内存中,并基于时间共享(或称时分复用)以在一个处理器上表现出同时运行的感觉。
同一进程中的多条线程将共享该进程中的全部系统资源,如虚拟地址空间、文件描述符和通信处理等。同一进程中的多个线程有各自的调用栈(call stack)、寄存器环境(register context)和线程本地存储(thread-local storage)。
CPU(Central Processing Unit)[5]:
中央处理单元,CPU不等于物理核,更不等于逻辑核。一个CPU可以有多个物理内核,同时在超线程技术下,一个物理内核可以分为多个逻辑核。
CPU物理内核[5]:
具体存在的、真实的CPU核,有独立的电路元件以及L1,L2缓存,可以独立地执行指令。
CPU逻辑处理器(逻辑核)[5]:
在同一个CPU物理内核里逻辑层面的核。逻辑核得益于超线程技术(Hyper-threading),超线程可以在一个逻辑核等待指令执行的间隔(等待从缓存或内存中获取下一条指令),把时间片分配到另一个逻辑核,高速地在两个逻辑核之间切换。
二、基于Qt的多线程并行和多线程循序运行Demo
该Demo的代码工程文件夹已与本博客进行资源绑定,其参考自Youtube博主Qt With Ketan的技术视频。
参考资料:
[1] Thread (computing) - Wikipedia
[2] Multithreading (computer architecture) - Wikipedia
[3] https://en.wikipedia.org/wiki/Process_(computing)
[4] 计算机操作系统中的线程/进程
[5] 性能基础之CPU、物理核、逻辑核概念与关系-腾讯云开发者社区-腾讯云 (tencent.com)
[6] 数据库系统工程师教程 / 王亚平,刘伟主编.—4版.—北京:清华大学出版社,2020.12(2022.3重印)
[7] Multithreading with Qt (Part 6) - Signals and Slots across Threads (youtube.com)
[8] Qt 6 C++开发指南 / 王维波,栗宝鹃,侯春望著.—北京:人民邮电出版社,2023.1.
参考案例:
/*1*/Qt QMutex | MultiThreading Synchronization In C++ | Prevent Deadlocks | | Qt C++ | Qt Creator (youtube.com)
/*2*/ Qt中多线程-线程池的使用-C/C++/qt_哔哩哔哩_bilibili
相关文章:
基于Qt的多线程并行和循序运行实验Demo
致谢(Acknowledgement): 感谢Youtube博主Qt With Ketan与KDAB精心录制的Qt多线程处理应用教程,感谢Bilibili博主爱编程的大丙对Qt多线程与线程池内容深入浅出的讲解。 一、计算机线程相关概念 线程概念[1]: 在计算机科…...
机器视觉-相机、镜头、光源(总结)
目录 1、机器视觉光源概述 2、光源的作用 3、光谱 4、工业场景常见光源 4.1、白炽灯 4.2、卤素灯 4.3、 荧光灯 4.4、LED灯 4.5、激光灯 5、光源的基本性能 5.1、光通量 5.2、光效率 5.3、发光强度 5.4、光照度 5.5、均匀性 5.6、色温 5.7、显色性 6、基本光学…...
第六十二周周报 HestGCL
文章目录 week 62 HestGCL摘要Abstract1. 题目2. Abstract3. 文献解读3.1 Introduction3.2 创新点 4. 网络结构4.1 基础4.2 HestGCL4.2.1 图的构造和数据的预处理4.2.2 双视图异构时空图神经网络4.2.3 预测与优化 5. 实验过程5.1 实验设置 6. 结论参考文献 week 62 HestGCL 摘…...
存储期类别
文章目录 前言一、自动存储期(Automatic Storage Duration)二、静态存储期(Static Storage Duration)三、动态存储期(Dynamic Storage Duration)四、线程存储期(Thread Storage Duration&#x…...
开源模型应用落地-Qwen2-VL-7B-Instruct-vLLM-OpenAI API Client调用
一、前言 学习Qwen2-VL ,为我们打开了一扇通往先进人工智能技术的大门。让我们能够深入了解当今最前沿的视觉语言模型的工作原理和强大能力。这不仅拓宽了我们的知识视野,更让我们站在科技发展的潮头,紧跟时代的步伐。 Qwen2-VL 具有卓越的图…...
风电叶片损伤YOLO检测数据集(猫脸码客第229期)
风电叶片损伤检测:为清洁能源保驾护航 一、风电叶片:清洁能源的关键组件 风电叶片作为风力发电的核心组件,在将风能转化为电能的过程中起着至关重要的作用。它犹如巨大的风车翅膀,捕捉流动的风,将其转化为机械能&…...
修改 RN 打包后生成的app-release 安装包的名称
在React Native项目中,修改打包后生成的Android app-release.apk 安装包的名称通常涉及修改Android的构建配置。以下是详细步骤: 修改Android打包后的APK名称 找到build.gradle文件: 打开你的React Native项目中的android/app/build.gradle文…...
大模型EfficientSam用于图像语义分割自动标注
安装labelme Labelme安装及使用教程-CSDN博客 pip install labelme -i https://pypi.tuna.tsinghua.edu.cn/simple 在安装的过程中因为会需要pyqt5 error: subprocess-exited-with-error Building wheel for PyQt5-sip (pyproject.toml) did not run successfully. │ exit …...
一个关于@JsonIgnore的isxxx()问题
一个关于JsonIgnore的问题 版本:2.13.5 <dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><optional>true</optional></dependency>代码: Data public clas…...
Django-cookie,session
Cookie简介 Cookie,有时也用Cookies,是指web程序为了辨别用户身份、进行 session 跟踪而储存在用户本地终端上的数据(通常经过加密),一般是以键值对的形式存在,Cookie具有不可跨域名性 Cookie是http协议中…...
HarmonyOS开发 - 本地持久化之实现LocalStorage支持多实例
用户首选项为应用提供Key-Value键值型的数据处理能力,支持应用持久化轻量级数据,并对其修改和查询。数据存储形式为键值对,键的类型为字符串型,值的存储数据类型包括数字型、字符型、布尔型以及这3种类型的数组类型。 在上一篇中&…...
【已解决,含泪总结】非root权限在服务器Ubuntu18.04上配置python和torch环境,代码最终成功训练(二)
配置torch环境 pip升级 因为一些包安装不成功可能和pip版本有关,所以先升级pip 吸取之前python有多个版本的经验,所以我指定了Python版本的pip进行升级 就是python3.8版本: /home/某某/Python3.8/bin/python3.8 (要换成你实际的…...
Flutter鸿蒙next 刷新机制的高级使用【衍生详解】
✅近期推荐:求职神器 https://bbs.csdn.net/topics/619384540 🔥欢迎大家订阅系列专栏:flutter_鸿蒙next 💬淼学派语录:只有不断的否认自己和肯定自己,才能走出弯曲不平的泥泞路,因为平坦的大路…...
c/c++--静态变量和静态函数(static)
目录 1 c静态函数和静态变量 1.1 C静态成员函数: 1.1.1定义与基本语法 1.1.2 不依赖于实例 1.1.3 访问限制 1.1.4共享数据 1.1.5 作用域与命名 1.1.6 工厂函数和工厂方法(常用途) 1.2 c静态函数() 1.3c静态变量 …...
Windows系统启动MongoDB报错无法连接服务器
文章目录 发现问题解决办法 发现问题 1)、先是发现执行 mongo 命令,启动报错: error: MongoNetworkError: connect ECONNREFUSED 127.0.0.1:27017; 2)、再检查 MongoDB 进程 tasklist | findstr mongo 发现没有进程&a…...
Linux的makefile与进度条小程序实践
makefile make命令主要功能使用方法常用选项 makefile文件基本结构使用案例变量定义内置变量(即系统定义的确定变量)伪目标模式规则条件语句注释makefile中的常用函数 进度条小程序创建文件编辑.h文件编辑.c文件创建main函数makefile文件执行效果 make命令 在linux中ÿ…...
latex写作基础
参考:https://www.bilibili.com/video/BV1ku4y1X7Rz 在线latex:https://cn.overleaf.com/ tex文件基本结构 \documentclass{article} % 文档类型,%是注释\usepackage{graphicx} % 导入各种包,这里是graphicx包\titl…...
Chromium HTML5 新的 Input 类型email对应c++
一、Input 类型: email email 类型用于应该包含 e-mail 地址的输入域。 <!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title>test</title> </head> <body><form action"demo-form.php"…...
嵌入式Linux的AXI平台(platform)驱动教程
本文以JFMQL100的Linux系统的AXI接口的平台驱动为例,介绍嵌入式Linux的平台驱动编写、测试软件编写以及验证方式。本文的方法适用于任意嵌入式芯片Linux的物理地址映射的平台(platform)驱动的编写、测试与应用。 本文中AXI的开始地址为0x8000…...
什么是Java策略模式?与Spring的完美结合
文章目录 什么是策略模式?策略模式的组成部分: 策略模式的示例在Spring中的妙用1. 使用Spring配置2. 在上下文中选择策略3. 动态切换策略 总结推荐阅读文章 在软件设计中,策略模式是一种非常常见的设计模式,它能够让算法的变化独立…...
[Go实战]:HTTP请求转发
前言 在Web应用开发中,请求转发是一项核心且常见的功能,用于负载均衡、服务拆分、路由重定向和业务逻辑处理。通过在Go语言中封装一个通用的HTTP请求转发方法,我们可以简化代码结构,提升可读性、可维护性和可扩展性。本文将探讨如…...
【C++单调栈 贡献法】907. 子数组的最小值之和|1975
本文涉及的基础知识点 C单调栈 LeetCode907. 子数组的最小值之和 给定一个整数数组 arr,找到 min(b) 的总和,其中 b 的范围为 arr 的每个(连续)子数组。 由于答案可能很大,因此 返回答案模 109 7 。 示例 1&#x…...
极狐GitLab 17.5 发布 20+ 与 DevSecOps 相关的功能【二】
GitLab 是一个全球知名的一体化 DevOps 平台,很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab 是 GitLab 在中国的发行版,专门为中国程序员服务。可以一键式部署极狐GitLab。 学习极狐GitLab 的相关资料: 极狐GitLab 官网极狐…...
Django 5 增删改查 小练习
1. 用命令创建目录和框架 django-admin startproject myapp cd myapp py manage.py startapp app md templates md static md media 2. Ai 生成代码 一、app/models.py from django.db import modelsclass Product(models.Model):name models.CharField(max_length255, verb…...
【STM32 Blue Pill编程实例】-I2C主从机通信(中断、DMA)
I2C主从机通信(中断、DMA) 文章目录 I2C主从机通信(中断、DMA)1、STM32的I2C介绍2、I2C模式3、STM32 I2C 数据包错误检查4、STM32 I2C 错误情况5、STM32 I2C中断6、STM32 I2C 主发送和接收(Tx 和 RX)6.1 I2C 轮询模式6.2 I2C 中断模式6.3 I2C DMA 模式6.4 STM32 I2C 设备…...
基于SSM+小程序的旅游社交登录管理系统(旅游4)
👉文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1、项目介绍 本旅游社交小程序功能有管理员和用户。管理员有个人中心,用户管理,每日签到管理,景点推荐管理,景点分类管理,防疫查询管理&a…...
高级java每日一道面试题-2024年10月24日-JVM篇-说一下JVM有哪些垃圾回收器?
如果有遗漏,评论区告诉我进行补充 面试官: 说一下JVM有哪些垃圾回收器? 我回答: 1. Serial收集器 特点:Serial收集器是最古老、最稳定的收集器,它使用单个线程进行垃圾收集工作。在进行垃圾回收时,它会暂停所有用户线程,即St…...
Java-内部类
个人主页 学习内部类(Inner Class)是Java编程中一项重要且强大的特性,它允许你在一个类的内部定义另一个类。内部类提供了一种将逻辑上相关的类组织在一起的方式,增加了代码的封装性和可读性。接下来带领大家进入內部类的学习。 …...
flutter集成极光推送
一、简述 极光推送,英文简称 JPush,免费的第三方消息推送服务,官方也推出众多平台的SDK以及插件。 参考链接 名称地址客户端集成插件客户端集成插件 - 极光文档 二、操作步骤 2.1 添加插件 flutter项目中集成官方提供的 极光推送flutte…...
D. Skipping 【 Codeforces Round 980 (Div. 2)】
D. Skipping 思路: 注意到最佳策略是先往右跳转到某处,然后按顺序从右往左把没有遇到过的题目全部提交。 将从 i i i跳转到 b [ i ] b[i] b[i]视为通过边权(代价)为 a [ i ] a[i] a[i]的路径,而向左的路径边权都是 0 0 0;目的是找到到从出发…...
洛阳网站建设报价/旺道seo推广效果怎么样
转自:http://blog.csdn.net/Times_poem/article/details/51396826 转载于:https://www.cnblogs.com/sky-heaven/p/7217685.html...
九江市建设工程质量监督站网站/搜索引擎营销的流程
解决方案:观察学生的身心状况1,如果学生确实身体不适,小睡一会并无不可。老师应给予适当的关心,必要时及时联系家长或送至校医院。2、如果学生因为情绪低落导致上课睡觉的问题,老师可以在课上适当提醒,同时…...
北京礼品网站建设/网络营销的六大功能
入门三问: 组的概念是什么?为什么引入它?有什么用? 答:通过组可以更加方便的管理用户,组的概念应用于各行行业,例如企业会使用部门、职能或地理区域的分类方式来管理成员,映射在Li…...
2012r2网站建设/网站如何优化排名
基于 Vue ElementUI 的web项目工程框架。专注于中台系统快速搭建,框架已在多个项目实战检验。 特色:搭载代码生成器,可生成底层api调用、vuex管理、模拟数据代码;内置常用超过80个基础UI组件;集成图表库、地图应用类库…...
厦门SEO_厦门网站建设/源码之家
首先,切换到西南等轴视图,以0,0,0点为中心点,画个正6边形,然后,执行拉升命令: _extrude当前线框密度: ISOLINES随便选择对象: 找到 1 个(选画的6边形)选择对象:确认指定拉伸高度或 [路径(P)]: 20 (一般为6边行内接圆半径1/2,自己随便)指定拉伸的倾斜角度 <0>:下一步以0,…...
网站及数据库怎么做后门/国外网站推广平台有哪些
【链接】http://acm.hdu.edu.cn/showproblem.php?pid6109 【题意】 在这里写题意【题解】 要处理的关系越多,肯定就越容易错.->单调性.根据这个二分出每组数据的最后一个是什么就好.二分判断这样:先处理出哪些数据是一样的,并在一起;并查集然后再处理不一样的,看看不一样的…...