JVM内存模型——程序计数器

烈酒焚心 提交于 2019-12-10 17:11:00

程序计数器又称为PC寄存器,是一块较小的内存空间,可以看作是当前线程所执行的字节码的行号指示器(实际是指令的偏移地址。在CPU中PC寄存器存放的是下一条指令地址,在JVM中存放的是正在执行的指令地址)。程序中的分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖这个计数器完成。由于多线程是通过线程轮流切换并分配处理器执行时间的方式来实现的,故该区域为线程私有的内存。当执行的是JVM的方法时,则寄存器中保存的是当前执行指令的地址;执行的是native方法,则寄存器中为空。也是唯一一块不存在溢出的区域。

特点总结:

  1. 线程私有;
  2. 生命周期随线程;
  3. 唯一没有OutOfMemoryError异常的区域。

特点分析:

程序计数器用于记录线程执行的位置,所以是每个线程私有的。由于线程在创建后运行中随时可能由于时间片耗尽而进行切换,所以程序计数器的生命周期是随线程创建而创建,随线程销毁而销毁的。程序计数器记录了线程执行的偏移量,在线程运行期间只是改变偏移量的值,不需要申请新的内存空间,所以不会出现内存溢出。

 

参考:https://www.jianshu.com/p/77c882f47b29

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!