一、进程
保存在硬盘上的程序运行以后,会在内存空间里形成一个独立的内存体,这个内存体有自己独立的地址空间,有自己的堆,上级挂靠单位是操作系统。操作系统会以进程为单位,分配系统资源(CPU时间片、内存等资源),进程是资源分配的最小单位。
二、线程
线程,有时被称为轻量级进程(Lightweight Process,LWP),是操作系统调度(CPU调度)执行的最小单位。
三、进程和线程的区别:
为了更好的理解进程和线程之间的区别和联系,可以做一个简单的比喻,把进程比作火车,线程比作火车的车厢。
- 线程是在进程下运行的(单纯的车厢是无法运营的);
- 一个进程可以包含多个线程(一个火车可以有多节车厢);
- 不同进程之间数据是很难共享的(一辆火车上的乘客很难换到另外一辆火车上,比如站点换乘);
- 同一进程下不同线程之间很容易进行数据的共享(a车厢换到b车厢很容易);
- 进程要比线程消耗更多的计算机资源(多列火车比多节车厢来说更耗资源);
- 进程之间不会互相影响,但是一个线程如果挂掉了,将导致整个进程都挂掉(一辆火车不会影响到另外一辆火车,但是一辆火车上的中间一节车厢着火了,那这辆火车的所有车厢都会受到影响)