Program Counter Register
位置
位于JVM中的运行时数据区
作用
PC寄存器用来存储指向下一条指令的地址,也就是即将要执行的指令代码,由执行引擎读取下一条指令
特点
- 它是一块内存很小的区域,小到可以忽略不计,也是运行速度最快的存储区域
- 在JVM中,每个线程都有自己的PC寄存器,是线程私有的,生命周期和线程的生命周期保持一致
- 任何时间一个线程都只有一个方法在执行,也就是所谓的当前方法。PC寄存器会存储当前方法的JVM地址;或者是如果在执行本地方法,则是未指定值
- JVM中唯一一个没有OutOfMemberError,也没有垃圾回收的区域
使用PC寄存器存储字节码指令地址有什么用呢?
我们都知道多线程并行实则是CPU的假象,CPU不停的来回切换线程执行,这时候切换回来以后,就得知道接着从哪开始继续执行,这时候PC寄存器就派上用场了