文章目录
1.定义
Program Counter Register
程序计数器(寄存器).下图表示程序计数器在我们JVM中所处的地位
作用:是记录下一条 jvm 指令的执行地址行号。
特点:
- 是线程私有的
- 不会存在内存溢出
2.作用
我们看到下图左边是二进制字节码,右边是Java源代码,二进制字节码主要先交给解释器来进行解释成机器码,这样CPU才能看懂。
但是解释器一次解释一句二进制字节码指令,那么解释器如何知道下一条二进制字节码指令是什么,这时就需要程序计数器。程序计数器记录下一条指令的地址,例如此时解释器执行第一条字节码指令,那么解释器中就是地址码是0,而程序计数器中记录下一条地址就是3。
- 解释器会解释指令为机器码交给 cpu 执行,程序计数器会记录下一条指令的地址行号,这样下一次解释器会从程序计数器拿到指令然后进行解释执行。
- 多线程的环境下,如果两个线程发生了上下文切换,那么程序计数器会记录线程下一行指令的地址行号,以便于接着往下执行。