CPU,进程,线程间的执行关系

名词解释(个人理解)

CPU

计算机的中央处理器,一般为多核(即:多个同样功能的设备)。认同一个事实:单核CPU,在某个特定的时间点(微观时间上),只能处理一个线程。

进程

程序关于某个数据集合上的一次运行活动,是一个过程的定义。也就是说程序运行时(进程),系统就会分配给他独立的资源(CPU和内存),所以说:系统进行资源分配和调度的独立单位。

线程

线程是进程的的一个实体,也就是说具体执行程序的劳动者,它是比程序更小的能独立运行的基本单位,因为执行的时候,需要调动CPU来完成。所以说:是CPU调度分配的基本单位。

并发和并行

  1. 并行:是这某个时间点上,处理多个事情。在单核的CPU上,一个核只能在特定的时间点上处理一个线程,但是多核的CPU就使得在特定的时间点上处理多个线程。那么问题来了,4核同时只能运行4个程序,而且只能是单线程?显然不对。你可以打开你电脑的资源管理器,可以看到很多进程,而且每个进程大多是多线程的。那这是为什么呢?那得先理解一个词“并发”。
  2. 并发:是指在某个微小的时间段内,处理多个事情(注意我的措辞,“时间段”)。具体意思就是,单核CPU在一个时间段内,先处理完了A线程,马上切换到B线程并且处理它,处理完B线程马上切换到C线程并且处理它…由于切换时间很快,所以基本上可以看做是同时处理,就像是光,当他频率到达一定的高度时,你肉眼根本分不清楚它快速的闪烁。

CPU执行程序的过程

在这里插入图片描述
上图是简要的画出了CPU执行程序的过程。程序执行时,就会产生一个进程,并且分配到一个CPU和独立的地址空间。CPU开始处理这个进程,这个进程里面的每一个线程进入主动去寻找CPU处理的阶段,这个阶段是可以CPU跨核的,处理完成,线程把数据交给其所在的进程。正是由于CPU能够快速的切换到不同进程的线程去处理它(并发的处理多个线程),使得计算机在同一时间可以运行多个程序,你也就会看到很多进程。以上就是我对三者关系的理解。

猜你喜欢

转载自blog.csdn.net/jeremy_ke/article/details/84901411