文章目录

1.定义

​Program Counter Register​​​ 程序计数器(寄存器).下图表示程序计数器在我们JVM中所处的地位
JVM专题(二)-程序计数器_java

作用:是记录下一条 jvm 指令的执行地址行号。

特点

  • 是线程私有的
  • 不会存在内存溢出

2.作用

我们看到下图左边是二进制字节码,右边是Java源代码,二进制字节码主要先交给解释器来进行解释成机器码,这样CPU才能看懂。

但是解释器一次解释一句二进制字节码指令,那么解释器如何知道下一条二进制字节码指令是什么,这时就需要程序计数器。程序计数器记录下一条指令的地址,例如此时解释器执行第一条字节码指令,那么解释器中就是地址码是0,而程序计数器中记录下一条地址就是3。

JVM专题(二)-程序计数器_java_02

  • 解释器会解释指令为机器码交给 cpu 执行,程序计数器会记录下一条指令的地址行号,这样下一次解释器会从程序计数器拿到指令然后进行解释执行。
  • 多线程的环境下,如果两个线程发生了上下文切换,那么程序计数器会记录线程下一行指令的地址行号,以便于接着往下执行。