JVM_程序计数器的作用、特点、线程私有、本地方法的概述

①. 程序计数器

  • ①. 作用 (是用来存储指向下一条指令的地址,也即将要执行的指令代码。由执行引擎读取下一条指令)

  • ②. 特点(是线程私有的 、不会存在内存溢出)

  • ③. 注意:在物理上实现程序计数器是在寄存器实现的,整个cpu中最快的一个执行单元

  • ④. 它是唯一一个在java虚拟机规范中没有OOM的区域

⑤. 使用PC寄存器存储字节码指令地址有什么用呢?

  • 为什么使用PC寄存器记录当前线程的执行地址呢?
  1. 因为CPU需要不停的切换各个线程,这时候切换回来以后,就得知道接着从哪开始继续执行

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

    ⑥. PC寄存器为什么设定为线程私有?
    (为了能够准确记录各个线程正在执行的当前字节码指令地址,最好的办法自然是为每一个线程都分配一个PC寄存器)

    ⑦. 关于线程在JVM中的说明:

1.在Hotspot JVM里,每个线程都与操作系统的本地线程直接映射

(解释:当一个Java线程准备好执行以后,此时一个操作系统的本地线程也同时创建.Java线程执行终止后,本地线程也会被回收)

2.操作系统负责所有线程的安排调度到任何一个可用的CPU上。一旦本地线程初始化完毕,它就会调用Java线程中的run方法

②. 本地方法栈

相关推荐
AresXue几秒前
聊聊为什么java会有这么多的字节码改写方式(jdk/cglib/asm/javasist)?
jvm
AresXue6 分钟前
2025最新Java性能优化建议 应用 数据库 机器 网络
java
跟着珅聪学java16 分钟前
spring boot 整合 activiti 教程
android·java·spring
junnhwan1 小时前
【苍穹外卖笔记】Day04--套餐管理模块
java·数据库·spring boot·后端·苍穹外卖·crud
程序员清风2 小时前
Dubbo RPCContext存储一些通用数据,这个用手动清除吗?
java·后端·面试
摇滚侠2 小时前
Spring Boot 3零基础教程,条件注解,笔记09
java·spring boot·笔记
南瓜小米粥、2 小时前
从可插拔拦截器出发:自定义、注入 Spring Boot、到生效路径的完整实践(Demo 版)
java·spring boot·后端
Huangmiemei9112 小时前
Spring Boot项目的常用依赖有哪些?
java·spring boot·后端
天天摸鱼的java工程师2 小时前
接口联调总卡壳?先问自己:真的搞清楚 HTTP 的 Header 和 Body 了吗?
java·后端
真的想不出名儿2 小时前
上传头像到腾讯云对象存储-前端基于antdv
java·数据库·腾讯云