- 资源和调度:进程是拥有资源的基本单位,线程是独立调度的基本单位,不拥有系统资源。在同一进程中,线程的切换不会引起进程的切换。在不同进程中线程的切换会引起进程切换。
- 系统开销:创建和撤销进程涉及资源的分配和回收,操作系统的开销远大于创建或撤销线程的开销。进程切换也需要涉及CPU环境的保存和新调度到进程CPU环境的设置,但线程切换只需要保存和设置少量的寄存器容量,开销很小。
- 地址空间:进程的地址空间之间互相独立,同一进程的各个线程共享进程的资源,进程内的线程对其他进程不可见。
- 通信:进程通信需要同步和互斥手段的辅助,保证数据一致性。线程可以直接读写进程数据段进行通信。