【QT】线程基础

线程基础

什么是线程?

线程是关于并行执行任务的,就像进程一样。那么线程与进程有何不同呢?当你在电子表格上做计算的同时,可能还有一个媒体播放器在桌面上播放你喜欢的歌曲。以下是两个进程并行工作的示例:一个运行电子表格程序;一个运行媒体播放器。多任务处理就是这个概念的一个典型表述。进一步观察媒体播放器,你会发现在一个单一进程内也存在并行执行的情况。当媒体播放器向音频驱动程序发送音乐时,用户界面及其所有功能也在不断更新。这就是线程的作用——在一个单一进程内实现并发。

那么并发是如何实现的呢?在单核 CPU 上并行工作是一种幻觉,有些类似于电影中运动图像的幻觉。对于进程,这种幻觉是通过在很短的时间内中断处理器对一个进程的工作来产生的。然后处理器转移到下一个进程。为了在进程之间切换,需要保存当前程序计数器,并加载下一个处理器的程序计数器。但这还不够,因为同样需要对寄存器和某些特定于架构和操作系统的数据执行相同的操作。

就像一个 CPU 可以运行两个或更多进程一样,它也可以让 CPU 运行同一个进程的两个不同代码段。当一个进程启动时,它总是执行一个代码段,因此该进程被称为有一个线程。然而,程序可能决定启动第二个线程。然后,在一个进程内同时处理两个不同的代码序列。在单核 CPU 上通过重复保存程序计数器和寄存器然后加载下一个线程的程序计数器和寄存器来实现并发。在切换到下一个线程时,不需要程序的协作。当切换到下一个线程时,线程可能处于任何状态。

当前 CPU 设计的趋势是具有多个核心。一个典型的单线程应用程序只能使用一个核心。然而,具有多个线程的程序可以分配给多个核心,使事情以真正并行的方式发生。因此,将工作分配给多个线程可以使程序在多核 CPU 上运行得更快,因为可以使用额外的核心。<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值