进程与线程
进程
进程是资源分配的基本单元.
进程控制块(Process Control Block, PCB)描述进程的基本信息和运行状态, 所谓的创建进程和撤销进程, 都是对于PCB的操作.
线程
线程是独立调度的基本单位.
一个进程中可以有多个线程, 他们共享进程资源.
区别
- 拥有资源 进程是资源分配的基本单位, 但是线程不拥有资源, 线程可以访问隶属进程的资源.
- 调度 线程是独立调度的基本单位, 在同一进程中, 线程的切换不会引起进程切换, 从一个进程内的线程切换到另一个进程的线程时会引起进程的切换.
- 系统开销 由于创建或撤销进程时, 系统都要为之分配或回收资源, 如内存空间, I/O设备, 所付出的开销远大于创建或撤销线程时的开销. 类似的, 在进行进程切换, 设计当前执行进程CPU环境的保存以及新调度进程CPU环境的设置, 而线程切换时只需要保存和设置少量寄存器内容, 开销很小.
- 通信方面 进程间通信(IPC)需要进程同步和互斥手段的辅助, 以保证数据的一致性. 而线程间可以通过直接读/写同一进程中的数据段(如全局变量)来进行通信.