栏目分类:
子分类:
返回
终身学习网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
终身学习网 > IT > 软件开发 > 后端开发 > Java

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

Java 更新时间:发布时间: 百科书网 趣学号
1. 什么是程序计数器?
  • 这块内存区域很小,它是当前线程所执行的字节码的行号指示器,字节码解释器通过改变这个计数器的值来选取下一条需要执行的字节码指令(就是一个指针,指向方法区中的方法字节码
2. 作用是什么?
  • 是用来存储指向下一条指令的地址,也即将要执行的指令代码。由执行引擎读取下一条指令。
3. 有什么特点?
  • 线程私有的 、不会存在内存溢出
4. 为什么Native方法这个计数器是undefined的?
  • 在物理上实现程序计数器是在寄存器实现的,整个cpu中最快的一个执行单元。
  • 所以执行的是一个Native方法,那这个计数器是undefined(程序计数器是JVM中的概念)。
5. 主要储存的是什么?
  • 用来存储指向下一条指令的地址,也即将要执行的指令代码。
6. 是否是线程私有的?
  • 每个线程都有一个程序计数器,是线程私有的。就是一个指针,指向方法区中的方法字节码。
7. 有没有可能发生OOM?
  • 它是唯一一个在java虚拟机规范中没有OOM的区域。
8. 使用PC寄存器存储字节码指令地址有什么用呢?(为什么使用PC寄存器记录当前线程的执行地址呢?)
  • 1.因为CPU需要不停的切换各个线程,这时候切换回来以后,就得知道接着从哪开始继续执行
  • 2.JVM的字节码解释器就需要通过改变PC寄存器的值明确下一条应该执行什么样的字节码指令
9. PC寄存器为什么设定为线程私有?
  • 为了能够准确记录各个线程正在执行的当前字节码指令地址,最好的办法自然是为每一个线程都分配一个PC寄存器。
10. 关于本地线程和JVM中的线程说明
  • 1.在Hotspot JVM里的每个线程都与操作系统的本地线程直接映射。

    • 解释:当一个Java线程准备好执行以后,此时一个操作系统的本地线程也同时创建一个。当Java线程执行终止后,本地线程也会被回收。
  • 2.操作系统负责所有线程的安排调度到任何一个可用的CPU上。一旦本地线程初始化完毕,它就会调用Java线程中的run方法。

11. 图形理解:

转载请注明:文章转载自 www.051e.com
本文地址:http://www.051e.com/it/1032916.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 ©2023-2025 051e.com

ICP备案号:京ICP备12030808号