0%

程序计数器

程序计数器

程序计数器(Program Counter Register)是用来存储指向下一条指令的地址,也就是即将要执行的指令代码,有执行引擎来读取下一条指令,每个线程都有自己的一个程序计数器,程序计数器的生命周期与线程的一致,在任何时间同一个线程只会执行一个方法,也就是当前方法,程序计数器会存储当前线程正在执行方法的JVM指令地址,如果执行的是native方法,在指令地址是undefined

程序计数器是JVM规范中唯一一个不会出现OOM的区域,且也不存在垃圾回收

为什么需要有程序计数器

由于CPU是在不停的进行线程切换的,而在切换到当前线程的时候需要知道从哪开始执行,而JVM的字节码解释器就是通过改变程序计数器的值来明确下一条指令该执行哪个字节码指令