JVM PC Register是对CPU物理寄存器的一种模拟
CPU程序寄存器主要存储指令相关的现场信息,CPU只有把数据装载到寄存器才能够运行
1.1 介绍
1.2 作用
存储下一条指令的地址,也就是即将执行的代码
1.3 执行过程
- 如上图所示,程序会被编译成具体的指令代码
- 指令地址就是保存在pc寄存器的地址
- 执行引擎通过获取pc寄存器的地址来获取执行的指令,操作局部变量表,操作数栈,再编译成机器指令,交给cpu运算
1.4 常见问题
1.4.1 使用pc寄存器存储字节码指令地址有什么用? 为什么使用pc寄存器记录当前线程的执行地址?
cpu是需要不停切换线程的,切换完之后需要知道之前执行到哪一步了,Jvm的字节码解释器就通过修改pc寄存器的值来明确接下来要执行的命令
1.4.2 pc寄存器为什么会被设置为线程私有?
cpu切换线程后必须要获取此线程上次执行到哪一步了,然后继续执行,如果pc寄存器是线程共享的,可能会出现线程间执行命令混乱的情况
1.4.3 Cpu时间片 扩展知识
cpu分配给不同的线程的执行时间,cpu的一个内核同时只能执行一个命令.