pc寄存器
一个jvm对象对应一个Runtime实例
pc寄存器用于储存下一条指令对应的指令地址(偏移地址)
问:使用PC寄存器存储字节码指令地址有什么用呢?为什么使用PC寄存器记录当前线程的执行地址呢?
因为CPU需要不停的切换各个线程,这时候切换回来以后,就得知道接着从哪开始继续执行。
JVM的字节码解释器就需要通过改变Pc寄存器的值来明确下一条应该执行什么样的字节码指令。
问:pc寄存器为什么设定为线程私有?
线程不断切换,设定私有,容易发生线程执行混乱。
为了能够准确地记录各个线程正在执行的当前字节码指令地址,
最好的办法自然是为每一个线程都分配一个c寄存器,
这样一来各个线程之间便可以进行独立计算,
从而不会出现相互干扰情况。