如何通俗易懂的区分「进程」与「线程」?

先看定义:

进程是资源分配的最小单位。

线程是 CPU 调度的最小单位。

看完定义是不是一脸懵,没关系,我给你举个例子。

现在某地有一个巨大的「沙石场」,里面存放着很多沙子、石子、水泥等资源,为此还专门修了一个火车站来解决运输问题。

每当有客户有需求的时候,沙石场就派单独一列火车装上货物送过去,然后列车返回车站等待下一次派遣。

由于是大批量运输和交易,所以沙石场只允许最小购买量为一车厢。有时顾客只要一车厢沙子,那么火车就只有一节车厢。

也有时顾客需要两车厢沙子和三车厢石子,火车就有五节长长的车厢。

因此,一列火车就是沙石场分配给客户运输货物的最小单位,车厢就是客户订购货物的最小单位。

大致可以理解为:

火车就是进程。

车厢就是线程。

如果非要用一句话来区分,那就是:进程 >= 线程

目的

引入进程是为了使程序能够与其他程序并发执行,以提高资源利用率。

引入线程是为了减小程序在并发执行时的时空开销,以提高操作系统的并发性能。

参考

评论