JVM_03 运行时数据区 [ 程序计数器+本地方法栈 ]
生活随笔
收集整理的這篇文章主要介紹了
JVM_03 运行时数据区 [ 程序计数器+本地方法栈 ]
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、 程序計數器
-
①. 作用,是用來存儲指向下一條指令的地址,也即將要執行的指令代碼。由執行引擎讀取下一條指令
-
②. 特點:①. 是線程私有的 ②. 不會存在內存溢出
-
③. 注意:在物理上實現程序計數器是在寄存器實現的,整個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方法
總結
以上是生活随笔為你收集整理的JVM_03 运行时数据区 [ 程序计数器+本地方法栈 ]的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 字节跳动被爆商业化部门大量裁员
- 下一篇: 2021年中国现制茶饮行业洞察报告