jvm(三)程序计数器

2020-06-16  本文已影响0人  钉某人

程序计数器

作用:用来存储指向下一条指令的地址。由执行引擎读取下一条指令。

通过命令查看字节码

javap -v xxx.class

#程序计数器存储的是下一条指令的地址
字节码部分截图

面试题:

1.使用pc寄存器(程序计数器)存储字节码指令地址有什么作用?
为什么使用pc寄存器记录当前线程的执行地址。
java虚拟机的多线程是通过线程切换并分配处理器执行时间的方式来实现的,在任何一个确定的时刻,一个处理器都会执行一条线程中的指令。因此,为了线程切换后能恢复到正确的执行位置,每条线程都需要有一个独立的程序计数器。各条线程之间计数器互不影响,独立存储。
2.pc寄存器为什么会被设定成线程私有
多线程是在特定时间端内只会执行其中某一个线程的方法,cpu会不停切换任务,必然会导致线程的经常中断或恢复,为了能够准确的记录各个线程正在执行的当前字节码指令地址,最好的方法就是为每一个线程都分配一个pc寄存器,这样线程间可以进行独立计算,不会相互影响。

上一篇 下一篇

猜你喜欢

热点阅读