JVM04_程序计数器
Posted root_zhb
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JVM04_程序计数器相关的知识,希望对你有一定的参考价值。
1、简介
- JVM中的PC寄存器是对物理PC寄存器的一种抽象模拟。
- 作用 :存储指向下一条指令的地址,也即将要执行的指令代码。由执行引擎读取下一条指令
- 如果执行的是一个Native方法,那这个计数器是undefined
- 线程私有;无GC;无OOM
2、面试问题
- 使用PC寄存器存储字节码指令地址有什么用呢? 为什么使用PC寄存器记录当前线程的执行地址呢?
因为CPU需要不停的切换各个线程,这时候切换回来以后,就得知道接着从哪开始继续执行。
JVM的字节码解释器就需要通过改变PC寄存器的值来明确下一条应该执行什么样的字节码指令。 - PC寄存器为什么设定为线程私有?
为了能够准确记录各个线程正在执行的当前字节码指令地址,最好的办法自然是为每一个线程都分配一个PC寄存器,各个线程互不干扰。
3、CPU时间片
CPU时间片即CPU分配给各个程序的时间,每个线程被分配一个时间段,称作它的时间片。
并行 VS 串行
并发 VS 单发
以上是关于JVM04_程序计数器的主要内容,如果未能解决你的问题,请参考以下文章