并法、进程、线程的基本概念与区别(一文即懂)

本文围绕C++展开,介绍了并发概念,区分了单核CPU的并发假象与多核芯片的真正并发。还阐述了可执行程序,以及运行它产生的进程和线程,指出一个进程可并发运行多个线程,且并发可通过多进程或单进程多线程实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、并发

并发的概念:两个或多个人物(独立的活动)同时发生或进行,即一个程序同时执行多个独立的任务

并发的假象:以前计算机是单核CPU,某一时刻只能执行一个任务,即由操作系统调度,每秒钟进行多次所谓的“任务切换”,这一种是“并发的假象”(不是真正的并发)。通俗来说就是,一个人一边写文档一边写代码,文档写一段,代码写一行,这样来回切换,虽然他是同时做了两件独立的事情,但是这不是真正的并发,而是“并发的假象”。这种切换要有时间开销,比如这个人的大脑(操作系统)要保存切换时的各种状态,比如文档写到哪里了,代码下一步该怎么写等等。真正的并发应该是两个人同时做这两件事情,一个人写代码的同时另一个人写文档。

现在硬件发展比较迅速,出现了多处理器计算机,用于服务器和高性能计算领域。现在普通的台式机在一块芯片上有多核:双核、4核、8核、10核等等(一个芯片里面有很多人)。能够实现真正的并行执行多个任务(硬件并发)。

二、可执行程序

磁盘上的一个文件,windows下,一个扩展名为.exe的文件。linux下,.x的执行文件等等。

三、进程

进程的概念:可执行程序是可以运行的,那么运行一个可执行程序,那就产生了一个进程。一个可执行程序可以产生多个进程,比如说一个电脑上可以登陆多个QQ。

四、线程

运行一个可执行程序会产生一个进程,每个进程都会有且只有一个主线程

线程的概念:假设把执行一个进程看成把十吨货从广州运到北京,那主任务(主线程)就是把货运到北京,但是把十吨或分成三辆车走不同的路,分别运到北京,这就是三线程。线程可以理解为一条代码的执行通路

线程并不是越多越好,每一个线程都需要一个独立的堆栈空间,线程之间切换要保存很多中间状态;切换会耗费本该属于程序运行的时间。

总结:

一句话:一个进程可以同时的并发运行多个线程。(理解了这句话肯定就懂了)。

其他知识:

并发有两个实现方式:一是通过多个进程实现并发;二是在一个进程中创建多个线程实现并发。

参考:c++11并发与多线程视频课程_哔哩哔哩_bilibili

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿巴乾

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值