进程与线程的区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了进程与线程的区别相关的知识,希望对你有一定的参考价值。

  1. 进程

    执行中一段程序,即一旦程序被载入到内存中并准备执行,它就是一个进程。进程是表示资源分配的的基本概念,又是调度运行的基本单位,是系统中的并发执行的单位。

  2. 线程

    单个进程中执行中每个任务就是一个线程。线程是进程中执行运算的最小单位。

  3. 一个线程只能属于一个进程,但是一个进程可以拥有多个线程。多线程处理就是允许一个进程中在同一时刻执行多个任务。
  4. 进程让操作系统的并发性成为了可能,而线程让进程的内部并发成为了可能。一个进程包含多个线程,但是这些线程共享进程占有的内存地址空间和资源。进程是操作系统进行资源分配的基本单位(进程之间互不干扰),而线程是操作系统进行调度的基本单位(线程间互相切换)。
  5. 进程的三种状态:

    运行 就绪 等待 三种状态

  6. 进程线程的区别:
    一个进程是一个独立(self contained)的运行环境,它可以被看作一个程序或者一个应用。而线程是在进程中执行的一个任务。

最大的区别是:是否单独占有内存地址空间
(共享,同步,可靠性,开销)

1.进程单独占有一定的内存地址空间,所以进程间存在内存隔离,数据时分开的,数据共享复杂但是同步简单,各个进程之间互不干扰;而线程共享所属进程占有的内存地址空间和资源,数据共享简单,但是同步复杂。
2.进程单独占有一定的内存地址空间,一个进程出现问题不会影响其他进程,不影响主程序的稳定性,可靠性高;一个线程崩溃可能影响整个程序的稳定性,可靠性较低。
3.进程单独占有一定的内存地址空间,进程的创建和销毁不仅需要保存寄存器和栈信息,还需要资源的分配回收以及页调度,开销较大;线程只需要保存寄存器和栈信息,开销较小。
注意:进程是操作系统进行资源分配的基本单位(进程之间互不干扰),而线程是操作系统进行调度的基本单位(线程间互相切换)。

以上是关于进程与线程的区别的主要内容,如果未能解决你的问题,请参考以下文章

进程与线程的区别

进程与线程的区别

进程与线程的区别,进程间通信方式,线程间通信方式

进程与线程对比/进程与线程的区别

Java多线程和并发,进程与线程的区别

进程与线程的区别