线程上下文切换(Thread Context Switch)


一、线程上下文切换(Thread Context Switch)

因为以下一些原因导致cpu不再执行当前的线程,转换执行另一个线程的代码

  1. 线程的cpu时间片用完
  2. 垃圾回收
  3. 有跟高优先级的线程需要运行
  4. 线程自己调用了sleep、yield、wait、join、park、synchronized、lock等方法

当上下文切换时,需要由操作系统保存当前线程的状态,并恢复另一个线程的状态,Java中对应的概念就是程序计数器(Program Counter Register),它的作用是记住下一条jvm指令的执行地址,是线程私有的

  1. 状态包括程序计数器、虚拟机栈中每个栈帧的信息,如局部变量、操作数栈、返回地址等。
  2. Context Switch频繁发生会影响性能

猜你喜欢

转载自blog.csdn.net/m0_50677223/article/details/130633121