线程(降低系统的开销,同时提高并发度)
概述
- 线程也是程序的执行过程;
- 线程也具有一个执行的状态(running,ready,etc.);
- 当线程不被执行的时候,也会保存线程的上下文;
- 拥有一个执行堆栈;
- 也有少量的存储空间来储存局部变量;
- 不再被分配资源,访问它进程的存储空间和资源,当前进程下的所有线程共享这些资源;
好处
- 创建新线程的时间低于创建一个新的进程(填写PCB很开销很大);
- 中止一个线程的时间比中止一个进程所花费的时间要少很多(进程会释放资源);
- 同进程内的线程切换花费时间更少(切换进程所执行的操作众多,释放资源,保存上下文,修改PCB等等);
- 在同一进程内的线程共享了这个进程的内存与资源(文件),线程间的通信将不会激发内核(不会有模式切换);
挂起
挂起一个进程,会挂起这个进程内的所有线程,因为同一进程内所有的线程共享进程的内存数据与资源,挂起时所有的数据都被拿到外存去了,所以所有的进程没有数据可以访问。
中断
中断一个进程,也会中断其所有的线程。