1. 进程与线程的区别
进程是计算机分配资源的最小单位,线程是 cpu 调度的最小单位
- 线程不能看做独立应用,而进程可以
- 进程由独立的地址空间,多个进程之间互不影响,线程只是进程的不同执行路径
- 线程没有独立的地址空间,多进程的程序比多线程的更为健壮
- 进程切换比线程切换的开销大
1.1 进程
- 所有与进程相关的资源,都被记录在进程 PCB 中
- 进程是抢占处理机的调度单位
- 线程属于某个进程,共享其资源
1.2 线程
- 线程由 TCB、程序计数器和堆栈寄存器组成
1.3 进程与线程的关系
2. Java 进程和线程的关系
- Java 对操作系统提供的进程和线程进行封装
- 运行一个程序会产生一个进程,这个进程中包含一个线程
- 每个进程对应一个 JVM 实例,多个线程共享 JVM 中的堆
- Java 采用单线程编程模型,程序会主动创建一个主线程
- 主线程可以创建子线程,原则上主线程的完成在子线程之后