0%

进程与线程

进程和线程

进程:

  1. 操作系统对正在运行的程序的一种抽象,程序是指令、数据及其组织形式的描述,进程是程序的实体。
  2. 指在系统中正在运行的一个应用程序;程序一旦运行就是进程。
  3. 进程是操作系统资源分配的最小单位。

线程:

  1. 是操作系统能够进行运算调度的最小单位。
  2. 包含在进程之中,是进程中的实际运作单位。
  3. 一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。
  4. 系统分配处理器时间资源的基本单元,或者说进程之内独立执行的一个单元执行流。

一个程序至少有一个进程,一个进程至少有一个线程。

进程与线程区别:

  1. 资源拥有:进程是cpu资源分配的最小单位,线程不拥有资源,线程可以访问隶属于进程的资源,是CPU调度的最小单位。
  2. 调度:线程是独立调度的基本单位,在同一进程中,线程的切换不会引起进程切换,从一个进程中的线程切换到另一个进程中的线程时,会引起进程切换。
  3. 系统开销:进程在创建、切换和销毁时开销比较大,而线程比较小。进程创建的时候需要分配系统资源,而销毁的的时候需要释放系统资源。线程切换时只需保存和设置少量寄存器内容,开销很小。
  4. 通信:线程间可以通过直接读写同一进程中的数据进行通信,但是进程通信需要借助 IPC。
  5. 一个进程崩溃,不会对其他进程产生影响;而一个线程崩溃,会让同一进程内的其他线程也死掉。

参考资料

CS-Notes