程序、进程和线程
# 程序、进程和线程
- 程序:是完了完成特定任务、用某种语言编写的一组指令的集合,是一段静态的代码(程序是静态的)。
- 进程:是程序的一次执行过程。正在运行的一个程序,进程作为资源分配的单位。在内存中会为每一个进程分配不同的内存区域。它是一个动的过程,进程的生命周期:由它自身的产生、存在和消亡的过程。
- 线程:进程可以进一步细化为线程,是一个程序内部的一条执行路径。若一个进程同一时间并行执行多个线程,就是支持多线程的。
# 单核 CPU 与多核 CPU 的任务执行
单核 CPU 在执行的时候是按照时间片来执行的,同一个时间片只能执行一个线程,我们所看到的一个多线程的一起处理的假象,即每一个线程都执行一下,让我们好像感受到他们在同时执行,因为时间片特别短,所以我们感受到的就是”同时“执行多个线程。
多个 CPU 的时候,才真正意义上做到一个时间片多线程同时进行。这才是多线程发挥了最好的效率,才是真正意义的同时执行,也是真正意义的多线程。
# 并行和并发
- 并行:多个 CPU 同时执行多个任务
- 并发:一个 CPU”同时“执行多个任务(采用时间片切换)
举个例子:
并行:
多个篮球场上,各自都在举行自己的篮球比赛,在各自抢占各自的”篮球“。
并发:
一个篮球场上,一群人准备抢占”篮球“
提示
在这里,篮球场即一个 CPU,多个篮球场就在并行的进行一场篮球比赛;而一个篮球场对一个篮球进行资源的抢占行为即并发。
编辑 (opens new window)
上次更新: 2022/02/08, 22:58:48