线程的上下文切换
线程的上下文切换
- 线程的上下文是指线程在执行过程中自己的运行条件和状态
- 当出现以下情况是,线程会从占用CPU状态中退出:
- 主动让出CPU,如调用
sleep()、wait()等方法 - 被动让出CPU,如时间片用完、被更高优先级线程抢占等
- 调用了阻塞类型的系统中断,如请求I0,线程被阻塞
- 被终止或结束运行
- 这其中的前三种都会发生线程切换,线程切换就意味着需要保存当前线程的上下文,用于下次恢复执行时使用,同时还需要加载新线程的上下文。
- 主动让出CPU,如调用
sleep()、wait()等方法