引言
经典面试问题:线程和进程的区别linux
进程的定义和特征
定义
通常状况下,咱们把进程实体就简称为进程。
进程实体由程序段,相关的数据段和PCB(进程控制块)组成。
是系统进行资源分配和调度的一个独立单位。
(出自《计算机操做系统》(第四版)西安科技大学出版社出版)面试
特征
- 动态性:由建立而产生,由调度而执行,由撤销而消亡。
- 并发性:多个进程实体同时存在于内存中。
- 独立性:进程实体做为一个能独立运行、独立得到资源和独立接受调度的基本单位
- 异步性:进程是按异步方式运行的,即各自独立。
线程的概念
做为调度和分派的单位多线程
线程和进程的比较
- 调度的基本单位:在引入线程的OS中(如今的window和linux都有线程了),仅把线程做为调度和分派的基本单位,因此线程是能独立运行的单位。线程切换时仅保留和设置少许寄存器,切换代价远低于进程。同一进程中,线程的切换不会致使进程的切换,但不一样进程中的线程切换会致使进程的切换。
- 并发性:线程和进程都能并发执行。
- 进程做为系统中拥有资源的一个基本单位,而线程仅拥有一点必不可少、能用于保证独立运行的资源。但线程能共享所属进程所拥有的资源,如文件、信号量、I/O设备等。
- 独立性:进程的独立性高于同一进程中线程的独立性。这是由于操做系统为了防止进程彼此干扰和破坏,各自拥有一个独立的地址空间和其余资源。而同一进程中的线程则共享进程的内存地址空间和资源。
- 系统开销:即对系统资源的消耗,如内存、I/O设备、文件等。显然进程消耗远大于线程。
- 支持多处理机系统:即把当前进程中不一样的线程分配给不一样的处理机。因此多处理机操做系统中都引入了多线程。