JVM专题-程序计数器

Posted IT老刘

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JVM专题-程序计数器相关的知识,希望对你有一定的参考价值。

文章目录

1.定义

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

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

特点

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

2.作用

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

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

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

以上是关于JVM专题-程序计数器的主要内容,如果未能解决你的问题,请参考以下文章

JVM专题-程序计数器

JVM技术专题深入研究JVM挖掘知识体系系列「补充篇」

Java技术专题-JVM研究系列,JVM深入研究挖掘课题

Java技术专题-JVM研究系列,JVM深入研究挖掘课题

分布式技术专题「系统服务优化系列」Web应用服务的性能指标优化开发指南(JVM篇)

JVM 专题七:运行时数据区程序计数器