栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JVM内存模型:PC程序计数器

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JVM内存模型:PC程序计数器

 

JVM中的程序计数器(Program Counter Register)中,Register的命名源自CPU的寄存器,寄存器存储指令相关的线程信息,这里的PC不是广义上的物理寄存器。PC寄存器用来存储指向下一条指令的地址,也即将要执行的指令代码,由执行引擎读取下一条指令。

 PC Register介绍:

*内存空间很小,几乎可以忽略不记,运行速度最快的存储区域。

*在JVM规范中,每个线程都有自己的程序计数器,是线程私有的,生命周期与线程的声明周期保持一致。

*任何时间一个线程都只有一个方法在执行,也就是当前方法。程序计数器会存储当前线程正在执行的Java方法的JVM指令指定。如果执行的native方法,则是undefined

*PC Register是程序控制流的指示器,分支循环,跳转,异常处理,线程恢复等基础功能都需要依赖这个计数器来完成。

*字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令。

*没有OOM和GC。

为什么PC寄存器要存储指令地址?

CPU需要不停的切换各个线程,这时候切换回来以后,就得知道接着从哪开始继续执行。

JVM的字节码解释器通过PC计数器知道下一条应该执行什么样的字节码指令。

为什么PC寄存器时线程私有的?

CPU在多线程时不停地做任务切换,这样会导致中断或恢复,为了能够准备地记录各个线程正在的当前字节码指令地址,最好的办法就是为每一个线程分配应该PC寄存器。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1024415.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号