进程与线程

326 阅读1分钟

1. 进程与线程的区别

进程是计算机分配资源的最小单位,线程是 cpu 调度的最小单位

  • 线程不能看做独立应用,而进程可以
  • 进程由独立的地址空间,多个进程之间互不影响,线程只是进程的不同执行路径
  • 线程没有独立的地址空间,多进程的程序比多线程的更为健壮
  • 进程切换比线程切换的开销大

1.1 进程

  • 所有与进程相关的资源,都被记录在进程 PCB 中
  • 进程是抢占处理机的调度单位
  • 线程属于某个进程,共享其资源

1.2 线程

  • 线程由 TCB、程序计数器和堆栈寄存器组成

1.3 进程与线程的关系

2. Java 进程和线程的关系

  • Java 对操作系统提供的进程和线程进行封装
  • 运行一个程序会产生一个进程,这个进程中包含一个线程
  • 每个进程对应一个 JVM 实例,多个线程共享 JVM 中的堆
  • Java 采用单线程编程模型,程序会主动创建一个主线程
  • 主线程可以创建子线程,原则上主线程的完成在子线程之后