进程和线程

165 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

进程相当于火车,而线程相当于车厢。一个进程至少有一个线程,一个进程可以运行多个线程,多个线程可以共享数据。

进程

进程是操作系统资源分配的基本单位,是一个应用程序在处理机上的一次执行过程,不只是程序的代码,还包括当前的活动,它是一个动态的实体,有自己的生命周期,反应了一个程序在一定的数据集上运行的全部动态过程,并作为程序独立运行的载体保证程序正运行,使得操作系统的资源利用率大大提升 。

特点
  • 动态性:可动态的创建,结束进程
  • 并发性:进程可以被独立调度并占用CPU
  • 独立性:不同进程的工作互不影响
  • 制约性:因访问共享数据/资源或进程间同步而产生制约
线程

处理器任务调度和执行的基本单位,最开始并没有线程的概念,因为进程阻塞之后只能等待,其他进程必须等待阻塞完成后在执行,所以引入了一种更小的、能独立运行的基本单位——线程,线程更加接近于一个执行体的概念,可以说是进程的一个实体。

执行过程

在一个进程中,当一个线程任务执行开始,由操作系统进行调度,通过硬件的记住其中断处理器,让该线程暂停并将线程的寄存器放入内存中,通过查看线程列表来执行哪一个线程,并从内存中恢复该线程的寄存器,最后恢复该线程的执行,从而去执行下一个任务。

区别
  • 线程是程序执行的最小单位,进程是操作系统分配资源的最小单位。
  • 进程是资源分配单位,线程是CPU调度单位。
  • 一个进程至少有一个线程,一个进程可以运行多个线程。
  • 进程之间相互独立,同一个进程的多个线程可以相互共享数据。
  • 线程的切换要比进程快。