程序计数器介绍(PC Register)
JVM中的程序计数器(Program Counter Register)中,Register的命名源于CPU的寄存器,寄存器存储指令相关的线程信息。CPU只有把数据装载到寄存器才能运行。
PC寄存器是用来存储指向下一条指令的地址。由执行引擎读取下一条指令,如图:
PC Regestger的特点:
1、占用很小的内存(几乎可以忽略)。也是运行速度最快的存储区域。
2、在JVM规范中,每个线程都有它自己的程序计数器,属于线程私有,生命周期与线程的生命周期一致。
3、任何一个时间,一个线程只有一个方法执行,称为当前方法。程序计数器会存储当前线程正在执行的Java方法的JVM的指令地址。如果是native方法,则未指定值。
4、是程序控制流的指示器,程序的分支、循环、跳转、异常处理、线程恢复等基础功能都依赖程序计数器来完成。
5、字节码解释器工作时,就是通过改变程序计数器的值来选取下一条需要执行的字节码指令。
6、唯一一个在Java虚拟机规范中没有规定任何OutOfMemoryError情况的区域。