学习笔记 | 关于线程和进程的比较

引言

经典面试问题:线程和进程的区别linux

进程的定义和特征

定义

通常状况下,咱们把进程实体就简称为进程。
进程实体由程序段相关的数据段PCB(进程控制块)组成。
是系统进行资源分配和调度的一个独立单位。
(出自《计算机操做系统》(第四版)西安科技大学出版社出版)面试

特征

  1. 动态性:由建立而产生,由调度而执行,由撤销而消亡。
  2. 并发性:多个进程实体同时存在于内存中。
  3. 独立性:进程实体做为一个能独立运行、独立得到资源和独立接受调度的基本单位
  4. 异步性:进程是按异步方式运行的,即各自独立。
线程的概念

做为调度和分派的单位多线程

线程和进程的比较
  1. 调度的基本单位:在引入线程的OS中(如今的window和linux都有线程了),仅把线程做为调度和分派的基本单位,因此线程是能独立运行的单位。线程切换时仅保留和设置少许寄存器,切换代价远低于进程。同一进程中,线程的切换不会致使进程的切换,但不一样进程中的线程切换会致使进程的切换。
  2. 并发性:线程和进程都能并发执行。
  3. 进程做为系统中拥有资源的一个基本单位,而线程仅拥有一点必不可少、能用于保证独立运行的资源。但线程能共享所属进程所拥有的资源,如文件、信号量、I/O设备等。
  4. 独立性:进程的独立性高于同一进程中线程的独立性。这是由于操做系统为了防止进程彼此干扰和破坏,各自拥有一个独立的地址空间和其余资源。而同一进程中的线程则共享进程的内存地址空间和资源。
  5. 系统开销:即对系统资源的消耗,如内存、I/O设备、文件等。显然进程消耗远大于线程。
  6. 支持多处理机系统:即把当前进程中不一样的线程分配给不一样的处理机。因此多处理机操做系统中都引入了多线程。
相关文章
相关标签/搜索