JVM內(nèi)存結(jié)構(gòu)中有哪些是線程私有的?


JVM的內(nèi)存區(qū)域結(jié)構(gòu)如下

內(nèi)存區(qū)域大概可分為方法區(qū),堆,虛擬機(jī)棧,本地方法棧,程序計(jì)數(shù)器,還會(huì)有直接內(nèi)存(虛擬機(jī)對內(nèi)存之外,但屬于及其內(nèi)存的一塊區(qū)域)

上述中虛擬機(jī)棧,本地方法棧,程序計(jì)數(shù)器是線程私有的

程序計(jì)數(shù)器:

例如有A,B兩個(gè)線程,兩個(gè)線程需要自己記錄具體執(zhí)行到哪一行代碼,這條代碼執(zhí)行完了,需要使用程序計(jì)數(shù)器指向下一條需要執(zhí)行的代碼。有了程序計(jì)數(shù)器,兩個(gè)線程就知道自己應(yīng)該做什么,以及下一步應(yīng)該做什么,不會(huì)互相影響。

虛擬機(jī)棧:

線程在執(zhí)行的過程不可避免要在方法之間跳轉(zhuǎn),虛擬機(jī)棧就是用來記錄線程需要執(zhí)行那些方法。

虛擬機(jī)棧是由棧幀組成的,一個(gè)棧幀對應(yīng)一個(gè)方法調(diào)用,一個(gè)方法調(diào)用完就會(huì)從虛擬機(jī)棧中出棧

跟程序計(jì)數(shù)器的道理是一樣的,虛擬機(jī)棧會(huì)決定線程自己的方法調(diào)用路徑。

本地方法棧:

跟虛擬機(jī)棧差不多,只不過本地方法棧的作用對象是native方法

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對...
    cosWriter閱讀 11,680評論 1 32
  • 這篇文章是我之前翻閱了不少的書籍以及從網(wǎng)絡(luò)上收集的一些資料的整理,因此不免有一些不準(zhǔn)確的地方,同時(shí)不同JDK版本的...
    高廣超閱讀 16,061評論 3 83
  • 第二部分 自動(dòng)內(nèi)存管理機(jī)制 第二章 java內(nèi)存異常與內(nèi)存溢出異常 運(yùn)行數(shù)據(jù)區(qū)域 程序計(jì)數(shù)器:當(dāng)前線程所執(zhí)行的字節(jié)...
    小明oh閱讀 1,298評論 0 2
  • 內(nèi)存溢出和內(nèi)存泄漏的區(qū)別 內(nèi)存溢出:out of memory,是指程序在申請內(nèi)存時(shí),沒有足夠的內(nèi)存空間供其使用,...
    Aimerwhy閱讀 808評論 0 1
  • 《深入理解Java虛擬機(jī)》筆記_第一遍 先取看完這本書(JVM)后必須掌握的部分。 第一部分 走近 Java 從傳...
    xiaogmail閱讀 5,480評論 1 34

友情鏈接更多精彩內(nèi)容