晓果冻
JVM运行时数据区-程序计数器篇
关注作者
前往小程序,Get
更优
阅读体验!
立即前往
腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
圈层
工具
文章/答案/技术大牛
搜索
搜索
关闭
发布
首页
学习
活动
专区
圈层
工具
返回腾讯云官网
晓果冻
首页
学习
活动
专区
圈层
工具
返回腾讯云官网
社区首页
>
专栏
>
JVM运行时数据区-程序计数器篇
JVM运行时数据区-程序计数器篇
晓果冻
关注
发布于 2022-09-08 14:00:34
发布于 2022-09-08 14:00:34
179
0
举报
文章被收录于专栏:
一直在努力的Java菜鸡er
一直在努力的Java菜鸡er
JVM运行时数据区-程序计数器篇
JVM运行时数据库包括5个区域,分别是:程序计数器、Java虚拟栈、本地方法栈、堆、方法区(JDK1.8之前,1.8之后叫元数据区)
程序计数器
它是一块很小的内存空间。
它是程序控制流的指示器,分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖这个计数器来完成。字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令。
Java多线程是通过多线程轮流切换并分配处理器的执行时间方式来实现的。在一个确定的时间,一个处理器(对于多核处理器来说是一个内核)只会执行一条指令。那Java虚拟机是如何记住上一个线程处理的位置呢?每个线程都有一个程序计数器,当某个线程执行一个Java方法时,计数器记录的是当前虚拟机字节码指令地址;如果是Native方法,则计数器存储的是空(Undefined)。这是Java虚拟机中唯一一个不会发生OOM情况的区域。
提问,如果在执行本地方法时,切换到另一个线程,之后怎么寻找该计数器?
答案:
引自知乎R大解释
追加 既然是多线程,那多线程之间为什么互不影响?因为程序计数器中各个计数器之间相互不影响,独立存储。这类内存也被称为
线程私有
的内存。
本文参与
腾讯云自媒体同步曝光计划
,分享自作者个人站点/博客。
如有侵权请联系
cloudcommunity@tencent.com
删除
前往查看
编程算法
java
jvm
本文分享自
作者个人站点/博客
前往查看
如有侵权,请联系
cloudcommunity@tencent.com
删除。
本文参与
腾讯云自媒体同步曝光计划
,欢迎热爱写作的你一起参与!
编程算法
java
jvm
评论
登录
后参与评论
0 条评论
热度
最新
推荐阅读
目录
JVM运行时数据区-程序计数器篇
JVM运行时数据库包括5个区域,分别是:程序计数器、Java虚拟栈、本地方法栈、堆、方法区(JDK1.8之前,1.8之后叫元数据区)
程序计数器
追加 既然是多线程,那多线程之间为什么互不影响?因为程序计数器中各个计数器之间相互不影响,独立存储。这类内存也被称为线程私有的内存。
领券
问题归档
专栏文章
快讯文章归档
关键词归档
开发者手册归档
开发者手册 Section 归档
0
0
0
推荐