黑马程序员技术交流社区
标题: jvm中的pc寄存器有什么用? [打印本页]
作者: 罗家辉 时间: 2013-4-7 22:26
标题: jvm中的pc寄存器有什么用?
他是用来存储什么的?有什么用?为什么要用它?求解,各位黑马同学
作者: 王大伟 时间: 2013-4-7 22:30
感觉你学的太深了 没办法 给你找了一下:
JVM在运行时将数据划分为了6个区域来存储,而不仅仅是大家熟知的Heap区域,这6个区域图示如下:
JVM内存的分配结构示意图
PC Register(PC寄存器)
PC寄存器是一块很小的内存区域,主要作用是记录当前线程所执行的字节码的行号。字节码解释器工作时就是通过改变当前线程的程序计数器选取下一条字节码指令来工作的。任何分支,循环,方法调用,判断,异常处理,线程等待以及恢复线程,递归等等都是通过这个计数器来完成的。
由于Java多线程是通过交替线程轮流切换并分配处理器时间的方式来实现的,在任何一个确定的时间里,在处理器的一个内核只会执行一条线程中的指令。因此为了线程等待结束需要恢复到正确的位置执行,每条线程都会有一个独立的程序计数器来记录当前指令的行号。计数器之间相互独立互不影响,我们称这块内存为“线程私有”的内存。
如果所调用的方法为native的,则PC寄存器中不存储任何信息。
作者: 王大伟 时间: 2013-4-7 22:31
我感觉不用研究这么深吧,当然,如果你有兴趣除外
作者: 罗家辉 时间: 2013-4-7 23:41
王大伟 发表于 2013-4-7 22:31 
我感觉不用研究这么深吧,当然,如果你有兴趣除外
反射的时候理解了jvm会更好理解,谢谢啦
作者: 黄玉昆 时间: 2013-4-8 09:05
如果问题未解决,请继续追问,如果没有问题了,请将帖子分类 改为“已解决”,谢谢
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |