理解进程和线程

171 阅读2分钟

形象理解

程序

待执行任务的一个作战小队。

不同队伍可能含有的人数是不等的,有的是5人,有的是7人。(战争随时可能发生,时刻准备着)

进程

执行任务的作战小队。

当程序被执行的时候,一个进程就开始执行

线程

执行任务的作战队伍中的每个队员。

每个队伍有一个队长,(每个队员都是一个线程,所以每个进程含有至少一个线程)。

常见问题

进程和线程的包含关系

每个队员都是一个线程,所以每个进程含有至少一个线程

进程是资源的分配单位

执行任务的作战小队是分配弹药的单位,资源共享

线程是调度的基本单位

每个队员有自己的分工,狙击手、医疗兵、侦察员。。。所以任务调度是以每个队员为基本单位(即线程),更加灵活高效

为什么引入线程(线程和进程区别)

  1. 拥有资源

    进程是拥有资源的独立单位,线程一般不拥有自己的资源

  2. 调度

    线程自身不带资源,在同一个进程中的线程切换不会引起进程切换,由一个进程中的线程切换到另一个进程中的线程才会引起进程切换。从而显著地提高系统的并发程度。

  3. 并发性

    引入线程的操作系统,不仅进程之间可以实现并非操作,线程之间也可并发执行,因而提高系统并发性,更有效地使用系统资源和提高系统吞吐量。

  4. 系统开销

    由于创建和撤销进程,系统都要为之分配和回收资源,开销太大。线程切换的开销就远小于进程切换。

以上都可利用作战小队来形象比喻,不多叙述


公众号