进程与线程的联系与区别

  • 进程是运行中的程序,线程是进程的内部的一个执行序列
  • 进程间切换代价大,线程间切换代价小
  • 进程拥有资源多,线程拥有资源少
  • 多个线程共享进程的资源
  • 进程是资源分配的基本单位,线程是任务调度和执行的基本单位。

操作系统为正在运行的程序提供的抽象,就是所谓的进程(process)。

通俗地说,进程就是运行中的程序。每个进程拥有独立的地址空间,互相隔离
而为单个运行进程提供的新抽象就叫线程,它跟进程的区别主要是线程共享地址空间,从而能够访问相同的数据
一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程。
线程是调度的最小单位,同一个进程的线程共享地址空间,容易有线程安全问题;进程是多数资源分配的最小单位,所以进程的地址空间都是独立的,资源安全问题相对较少。

Reference