进程和线程的区别(举例说明)

  • Post author:
  • Post category:其他


1. 一句话描述

进程是资源分配的最小单位,线程是CPU调度的最小单位

2. 举例说明(假设进程=火车,线程=车厢)

(1)包含关系

如果一个进程内有多个线程,则执行过程不是一条线的,而是多条线程共同完成的,线程是进程的一部分,所以线程也被称为轻量级进程。

【一辆火车可以有多个车厢,每节车厢都是火车的一部分】

(2)资源开销

每个进程都有独立的代码和数据空间,程序之间切换会产生较大的开销;线程可以看作轻量级的进程,同一类线程共享代码和数据空间,每个线程都有自己独立的运行栈和程序计数器,线程之间切换的开销小

【多列火车比多个车厢更耗资源】

【一辆火车上的乘客很难换到另外一辆火车,比如站点换乘,但是同一辆火车上乘客很容易从A车厢换到B车厢】

(3)内存分配

同一进程的线程共享本进程的地址空间和资源,而进程之间的地址空间和资源是相互独立的

【一辆火车上不同车厢的人可以共用各节车厢的洗手间,但是不是火车上的乘客无法使用别的火车上的洗手间】

(4)影响关系

一个进程崩溃后,在保护模式下不会对其他进程产生影响,但是一个线程奔溃会导致整个进程都死掉。所以多进程比多线程健壮

【一列火车上某一节车厢着火,整列火车都受到影响,但是一列火车上着火不会影响另外一辆火车】

(5)执行过程

每个独立的进程有程序运行的入口,顺序执行序列和程序出口。但是线程不能独立执行,必须存在应用程序中,由应用程序提供多个线程执行控制,两者均可并发执行

【火车可以直接发车,车厢单独不能发车】



版权声明:本文为qq_40155300原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。