程序计数器算是JVM中所有结构中,最简单的一款了😂
# PC Register
- 程序计数器并不是CPU的寄存器,两个不是一个概念
- 程序计数器记录每一个线程执行到了哪一步,线程结束了也跟着消失
- 在JVM中占用资源不大,执行效率高
package com.mrzhang.javalearn.jvm.cxjsq;
/**
* 程序计数器测试(一)
*
* @author 91MrZhang on 2020/8/12
*/
public class TestDemo1 {
public static void main(String[] args) {
int va = 6;
int vb = 8;
int vc = 6 + 8;
System.out.println(vc);
}
}
通过jclasslib等工具,将.class字节码文件可视化,可以看到jvm指令,
实际上程序计数器就是记录这些jvm指令运行的到了哪一行的 
# CPU的时间片
- 宏观上看起来各个线程是交替执行的,微观上CPU为了公平,只能一个线程执行一会,再去执行下一个,轮着来,所以需要引入程序计数器这个概念,保证下次CPU过来执行的时候,直接能知道执行到哪里了
- 程序计数器是线程私有的,A线程执行时,A线程的程序计数器只为A服务