进程与线程

149 阅读2分钟

进程

进程是进程实体的运行过程,是系统进行资源分配的基本单位

进程的实质

进程的实质是PCB(进程控制块),创建进程实际上就是创建PCB。PCB包含了进程的基本信息(标识符,CPU状态,进程调度信息,进程控制信息)与运行状态。

进程的三种基本状态

就绪状态

已经分配资源完成,等待CPU的权限。

执行状态

已经分配资源且获得操作CPU的权限,正在执行。

 阻塞状态 

正在等待分配资源。

三种状态之间的切换:

线程

线程是系统独立调度的基本单位,本身不占有任何资源,共享进程的资源。

一个进程可以有多个线程。如QQ和微信属于不同的进程,但是他们分别都有自己的线程,微信的线程监听朋友圈动态,QQ的线程监听QQ空间动态。

区别

是否占有资源

进程占有资源,线程不占用资源

通信

进程间通信需要陷入内核,同一进程下的多个线程之间可以通过共享进程数据完成通信

系统开销

由于创建或撤销进程时,系统都要为之分配或回收资源,如内存空间、I/O 设备等,所付出的开销远大于创建或撤销线程时的开销。类似地,在进行进程切换时,涉及当前执行进程 CPU 环境的保存及新调度进程 CPU 环境的设置,而线程切换时只需保存和设置少量寄存器内容,开销很小。

调度

在同一进程中,不同的线程切换不需要进行陷入内核切换进程。但是从一个进程切换到另一个进程则需要陷入内核(需要消耗时间)。