admin管理员组

文章数量:1560431

一、并发

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

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

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

二、可执行程序

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

三、进程

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

四、线程

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

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

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

总结:

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

其他知识:

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

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

本文标签: 线程一文基本概念进程区别