进程 | 线程 | |
最小单位 | 资源分配的最小单位 | CPU调度的最小单位,操作系统可识别的最小单位 |
内存资源 | 有独立的内存资源 | 同一个进程里的多个线程共享进程的内存资源,但有自己独立的虚拟存储器,包括寄存器、指令计数器和处理器状态 |
系统开销 | 创建、撤销进程时系统开销大,创建进程时分配系统资源,撤销进程时回收系统资源。进程切换时需要对当前CPU环境的保存以及被新调度的CPU环境的设置 | 创建撤销线程时系统开销小,线程切换时只需对少量的寄存器进行设置 |
影响 | 一个进程崩溃其他进程不会受到影响 | 一个线程崩溃,同一个进程里的其他线程也会崩溃 |
通信 | 进程间通信很复杂 | 同一个进程的线程由于共享数据段和代码段通信比较方便4 |
适用场景 | 多进程适用于多机、多核分布 | 多核分布 |