【QT进阶】Qt线程与并发之线程和并发的简单介绍

往期回顾:

【QT进阶】Qt http编程之实现websocket server服务器端-CSDN博客

【QT进阶】Qt http编程之实现websocket client客户端-CSDN博客

【QT进阶】Qt线程与并发之创建线程的三种方法(超详细介绍)-CSDN博客

【QT进阶】Qt线程与并发之线程和并发的简单介绍

一、 什么是线程和并发

主要是做一个简单的补充说明

1、线程

线程是程序执行的最小单元 ,是操作系统能够进行运算调度的最小单位。一个进程可以包含多个线程,每个线程之间可以并发执行,共享同一进程的资源。线程可以实现多任务并发执行,提高程序的效率和性能。

线程跟框架、系统是息息相关的,所以在一些常见的框架、系统里基本都会有对应线程处理方法

常见线程技术

|---------------------|----------------------------|
| (1) pthread : | linux线程 |
| (2) win32-pthread: | obs的线程全部使用 了win32- pthread |
| (3) windows thread类 | |
| (4) MFC thread类 | |
| (5) boost | |
| (6) std::thread: | 推荐用这个,基于语言级别的跨平台C+ +线程 |

一般来说,都更推荐使用那种基于语言本身的,跟框架和系统没关系的方法,这样方便我们在进行不同项目开发时迁移,否则可能出现换一个平台或框架,就不知道该怎么用了。

2、并发

并发是指多个任务同时执行的能力,它可以提高程序的性能和效率。在计算机领域中,并发通常指的是多个线程或进程同时执行,从而实现多任务处理。并发可以让程序在同一时间执行多个任务,提高系统的响应速度和资源利用率。

从宏观上看是同时执行的,但实际上是通过时间片轮转实现的。并发可以提高系统资源的利用率,增加系统的吞吐量。

3、应用

在Qt中,线程和并发主要是指通过Qt框架提供的类和机制来实现多线程编程和并发操作。Qt提供了QThread类来管理线程,以及信号槽机制来实现线程间的通信。通过在不同线程中执行不同的任务,可以实现并发操作,提高程序的响应速度和效率。

3.1耗时操作:

将耗时的操作放在单独的线程中执行,避免阻塞主线程,保持界面的响应性。

3.2并发处理:

通过多线程实现并发处理,提高程序的并发能力和性能。

3.3数据共享:

通过信号槽机制实现线程间的数据传递和通信,实现多线程间的协作和同步。

比如:

假设我们有一个下载器程序,它需要同时下载多个文件。如果我们使用单线程来实现下载功能,那么只能依次下载每个文件,下载速度会很慢。但是如果我们使用多线程来实现下载功能,可以让每个线程负责下载一个文件,这样就能同时下载多个文件,提高下载速度。

所以说在槽函数里处理那种耗时的操作,要么用线程要么用并发,避免窗口卡顿。


以上就是Qt里线程和并发的简单介绍

都看到这里了,点个赞再走呗朋友~

加油吧,预祝大家变得更强!

相关推荐
前进的李工1 分钟前
LangChain使用之Model IO(提示词模版之FewShotPromptTemplate)
开发语言·人工智能·语言模型·langchain·agent
Ivanqhz1 分钟前
寄存器分配的核心函数 allocate
java·开发语言·后端·python·rust
天远云服3 分钟前
驾培系统车辆核验实战:PHP集成天远二手车估值API实现学员车辆信息自动化管理
大数据·开发语言·自动化·php
2501_945424803 分钟前
高性能计算资源调度
开发语言·c++·算法
野犬寒鸦6 分钟前
JVM垃圾回收机制深度解析(G1篇)(垃圾回收过程及专业名词详解)(补充)
java·服务器·开发语言·jvm·后端·面试
ZHOUPUYU7 分钟前
PHP异步编程实战ReactPHP到Swoole的现代方案
开发语言·php
2301_7765087211 分钟前
C++中的组合模式变体
开发语言·c++·算法
历程里程碑13 分钟前
44. TCP -23Linux聊天室实现命令符功能
java·linux·开发语言·数据结构·c++·排序算法·tcp
2301_7938046918 分钟前
模板代码安全性增强
开发语言·c++·算法
干啥啥不行,秃头第一名20 分钟前
C++中的观察者模式
开发语言·c++·算法