JVM 程序计数器(PC)

PC寄存器的概念

   

  1. JVM中的程序计数寄存器(Program Counter Register)中,Register的命名源于CPU的寄存器,寄存器存储指令相关的现场信息。CPU只有把数据装载到寄存器才能够运行。
  2. 这里,并非是广义上所指的物理寄存器,或许将其翻译为PC计数器(或指令计数器)会更加贴切(也称为程序钩子),并且也不容易引起一些不必要的误会。JVM中的PC寄存器是对物理PC寄存器的一种抽象模拟
  3. 它是一块很小的内存空间,几乎可以忽略不记。也是运行速度最快的存储区域。
  4. 在JVM规范中,每个线程都有它自己的程序计数器,是线程私有的,生命周期与线程的生命周期保持一致。
  5. 任何时间一个线程都只有一个方法在执行,也就是所谓的当前方法。程序计数器会存储当前线程正在执行的Java方法的JVM指令地址;或者,如果是在执行native方法,则是未指定值(undefned)。
  6. 它是程序控制流的指示器,分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖这个计数器来完成。
  7. 字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令。
  8. 它是唯一一个在Java虚拟机规范中没有规定任何OutofMemoryError情况的区域。

PC的作用

                 主要作用:用来存储下一条指令的地址。(也就是说即将要执行的指令代码)

 PC 面试题

【1】使用PC寄存器存储字节码指令地址有什么用呢?或者问为什么使用 PC 寄存器来记录当前线程的执行地址呢?

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

      JVM的字节码解释器就需要通过改变PC寄存器的值来明确下一条应该执行什么样的字节码指令

【2】PC寄存器为什么被设定为私有的?

  1. 我们都知道所谓的多线程在一个特定的时间段内只会执行其中某一个线程的方法,CPU会不停地做任务切换,这样必然导致经常中断或恢复,如何保证分毫无差呢?为了能够准确地记录各个线程正在执行的当前字节码指令地址,最好的办法自然是为每一个线程都分配一个PC寄存器,这样一来各个线程之间便可以进行独立计算,从而不会出现相互干扰的情况。
  2. 由于CPU时间片轮限制,众多线程在并发执行过程中,任何一个确定的时刻,一个处理器或者多核处理器中的一个内核,只会执行某个线程中的一条指令。
  3. 这样必然导致经常中断或恢复,如何保证分毫无差呢?每个线程在创建后,都会产生自己的程序计数器和栈帧,程序计数器在各个线程之间互不影响。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/6955.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【蓝桥杯冲刺】日期类专题特训

目录 1. 日期累加 题目描述 输入 输出 代码 2. 日期差值 题目描述 输入 输出 代码 3. 打印日期 题目描述 输入 输出 代码 写在最后: 1. 日期累加 题目链接:日期累加 题目描述 输入 1 2008 2 3 100 输出 2008-05-13 代码 #include…

如何在 Linux 中查找所有符号链接,这几个命令得会!

在Linux中,符号链接(Symbolic Link)是一种非常常见的文件类型,也称为软链接。符号链接是指向另一个文件的指针,而不是实际的数据。它允许用户创建一个指向另一个文件的虚拟文件,这样用户可以在不改变实际文…

JVM解析原理

目录1.JVM内存结构2.JIT及时编译器的原理,优化以及切换编译器类型2.1解释型语言和编译语言2.2JIT即时编译器(Just In Time Compiler)3.类的加载机制和类的加载器3.1类的加载机制3.2类的加载器4.双亲委派机制4.1定义4.2优点4.3总结5.虚拟机栈详…

读破万卷,神交古人,突破ChatGPT4096的Token限制,建立自己的垂直领域资料人工智能助理

ChatGPT的泛用性极高,上知天文,下通地理,参考古今,博稽中外,几乎无所不知,无所不晓。但如果涉及垂直领域的专业知识点,ChatGPT难免也会有语焉不详,闪烁其词的毛病,本次我…

16从零开始学Java之Java里的输入与输出语句有哪些?

作者:孙玉昌,昵称【一一哥】,另外【壹壹哥】也是我哦 CSDN博客专家、万粉博主、阿里云专家博主、掘金优质作者 前言 我们在前面的文章中,学习了如何创建Java文件,也学习了Java里的标识符、运算符、进制等内容。有些…

iPhone手机小技巧:使用备忘录创建清单

手机备忘录是非常常用的软件之一,无论是iPhone手机还是安卓系统的手机都可以下载相应的APP进行使用。它可以帮助我们记录很多琐碎的事情,防止我们遗忘某事。 在记备忘录的时候,有的人是直接打字记录的,也没有什么具体的格式&…

Excel–如何区分大小写、精确匹配查找?

最近经常需要用到uuid来匹配数据,经常会遇到两个uuid 只是大小写的区别,数据库里使用是没问题的,因为mysql是可以区分大小写的,但是导出后通过excel处理数据匹配数据时就会出问题 如下图所示,通过vlookup匹配&#xf…

文心一言 VS chatgpt (3)-- 算法导论2.1

一、以图 2-2 为模型,说明INSERTION-SORT 在数组 A(31,41,59,26,41,58)上的执行过程。 文心一言: 以图 2-2 为模型,说明INSERTION-SORT 在数组 A(31,41,59&…

Java基础学习第二十四讲:Stream流

Stream流 一、什么是Stream流 Stream流操作是Java 8提供一个重要新特性,它允许开发人员以声明性方式处理集合,其核心类库主要改进了对集合类的 API和新增Stream操作。Stream类中每一个方法都对应集合上的一种操作。将真正的函数式编程引入到Java中&…

ROS功能包|mav_control_rw(基于MPC的无人机轨迹跟踪控制)---gazebo仿真测试

ROS功能包|mav_control_rw(基于MPC的无人机轨迹跟踪控制)---gazebo仿真测试gazebo仿真测试gazebo仿真测试 启动gazebo并加载无人机模型 $ roslaunch rotors_gazebo mav.launch mav_name:firefly启动 linear mpc 控制器 $ roslaunch mav_linear_mpc ma…

Win10安装MySql1.5.7

1)、下载安装包 地址:MySQL :: Download MySQL Community Server 或者: 链接:https://pan.baidu.com/s/1iSLiUo8ehqP6tfxGJ2ewfA 提取码:ctbr 2)、下载后解压到指定目录 我的是D:\Program Files\mysql-…

SCS【19】单细胞自动注释细胞类型 (Symphony)

单细胞生信分析教程桓峰基因公众号推出单细胞生信分析教程并配有视频在线教程,目前整理出来的相关教程目录如下:Topic 6. 克隆进化之 CanopyTopic 7. 克隆进化之 CardelinoTopic 8. 克隆进化之 RobustCloneSCS【1】今天开启单细胞之旅,述说单…

一图看懂 bz2 模块:处理压缩和解压缩文件, 资料整理+笔记(大全)

本文由 大侠(AhcaoZhu)原创,转载请声明。 链接: https://blog.csdn.net/Ahcao2008 一图看懂 bz2 模块:处理压缩和解压缩文件, 资料整理笔记(大全)摘要模块图类关系图模块全展开【bz2】统计常量int模块4 io5 os6 warnings7 _compre…

数据结构与算法基础(王卓)(23):邻接表(链式存储结构)

顶点结点: //顶点的结点结构 typedef struct VNode {VertexType data; //顶点信息ArcNode* firstarc; //指向第一条依附该顶点的边的指针 }VNode, AdjList[MVNum]; //例如:VNode v[MVNum] 相当于 AdjList v 我觉得也可以改成这样写(存疑&…

基于数字孪生智慧污水厂Web3D可视化管理系统

城市水环境不仅关系到国民生活的质量,还对我国社会发展有着深入的影响。城市污水处理厂的存在不仅能够提升生态环保工作发挥的效用,还能够向城市居民宣传生态环保的重要性,使得更多的市民认识到节约、环保的意义,能够从自身出发&a…

UVM学习笔记2——验证基础知识(验证计划、验证方法)

文章目录前言一、覆盖率二、验证计划1、验证计划模板2、验证计划评估三、验证方法1、动态仿真/dynamic simulation2、静态检查/formal check3、虚拟模型4、硬件加速/hardware acceleration5、效能验证6、性能验证四、验证分类1、验证工具2、验证复杂度/可见度/透明度3、验证的芯…

Java设计模式(一)单例模式

设计模式是对软件设计中普遍存在的各种问题,提出解决方案 设计模式包含了面向对象的精髓,懂了设计模式,你就懂了面向对象分析和设计的精要。 设计模式的七大原则 1.单一职责原则 2.接口隔离原则 3.依赖倒置原则 4.里氏替换原则 5.开闭原则o…

大数据项目实战之数据仓库:用户行为采集平台——第2章 项目需求及架构设计

第2章 项目需求及架构设计 2.1 项目需求分析 1)采集平台 (1)用户行为数据采集平台搭建 (2)业务数据采集平台搭建 2)离线需求 主题 子主题 指标 流量主题 各渠道流量统计 当日各渠道独立…

pdf压缩文件怎么压缩最小?办公常备软件

PDF文件的大小有时会让人感到困扰,特别是在网络上传输和存储方面。为了解决这个问题,我们需要将PDF文件压缩至最小。 在进行压缩之前,需要检查PDF文件的分辨率和图形质量。通过降低分辨率和图形质量,可以显著减小文件的大小。此外…