①. 程序计数器
-
①. 作用,是用来存储指向下一条指令的地址,也即将要执行的指令代码。由执行引擎读取下一条指令
-
②. 特点:①. 是线程私有的 ②. 不会存在内存溢出
-
③. 注意:在物理上实现程序计数器是在寄存器实现的,整个cpu中最快的一个执行单元
-
④. 它是唯一一个在java虚拟机规范中没有OOM的区域
解释:
- ⑤. 使用PC寄存器存储字节码指令地址有什么用呢?
为什么使用PC寄存器记录当前线程的执行地址呢?
-
⑥. PC寄存器为什么设定为线程私有?
(为了能够准确记录各个线程正在执行的当前字节码指令地址,最好的办法自然是为每一个线程都分配一个PC寄存器) -
⑦. 关于线程在JVM中的说明:
1.在Hotspot JVM里,每个线程都与操作系统的本地线程直接映射
解释:当一个Java线程准备好执行以后,此时一个操作系统的本地线程也同时创建.Java线程执行终
止后,本地线程也会被回收
2.操作系统负责所有线程的安排调度到任何一个可用的CPU上。一旦本地线程初始化完毕,它就会调
用Java线程中的run方法
②. 本地方法栈
-
①. Native Interface本地接口
-
②. 本地方法栈(Native Method Stack)
(它的具体做法是Native Method Stack中登记native方法,在Execution Engine 执行时加载本地方法库) -
③. native方法的举例: Object类中的clone wait notify hashCode 等 Unsafe类都是native方法