读书《深入理解JAVA虚拟机》支程序计数器(Program Counter Register)
1、程序计数器的内存空间较小
2、程序计数器是一个当前线程所执行到的字节码文件的行号指示器
3、在java虚拟机概念模型中,字节码解释器的工作就是通过改变程序计数器的值来选取下一条需要执行的字节码。
4、分支、线程恢复、异常处理、循环、跳转等都需要用到程序计数器
5、在任何一个处理器(对于多核处理器来说一个内核)只会执行一条线程中的指令。因此为了线程切换后可以恢复到正确的执行位置每条线程都是需要有一个单独的程序计数器,各个线程之间的程序计数器相互独立,我们称之为:“线程私有”的内存
6、如果当前线程正在执行的是一个java方法那么这个程序计数器记录的就是这个正在执行的方法的虚拟机字节码指令地址,如果当前线程执行的是一个本地方法,那么程序计数器的值就是空
7、这个内存区域是在《java虚拟机规范》中唯一一个规定不会出现OutofMemoryError的区域