线程的上下文切换

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