千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

當(dāng)前位置:首頁  >  IT面試題  >  物聯(lián)網(wǎng)面試題  >  正文

為什么程序計(jì)數(shù)器、虛擬機(jī)棧和本地方法棧是線程私有的呢?

來源:千鋒教育
發(fā)布時(shí)間:2022-09-26 14:01:50
分享

  程序計(jì)數(shù)器主要有下面兩個(gè)作用:

  1、字節(jié)碼解釋器通過改變程序計(jì)數(shù)器來依次讀取指令,從而實(shí)現(xiàn)代碼的流程控制,如:順序執(zhí)行、選擇、循環(huán)、異常處理。

  2、在多線程的情況下,程序計(jì)數(shù)器用于記錄當(dāng)前線程執(zhí)行的位置,從而當(dāng)線程被切換回來的時(shí)候能夠知道該線程上次運(yùn)行到哪兒了。(需要注意的是,如果執(zhí)行的是 native 方法,那么程序計(jì)數(shù)器記錄的是 undefined 地址,只有執(zhí)行的是 Java 代碼時(shí)程序計(jì)數(shù)器記錄的才是下一條指令的地址。) 所以,程序計(jì)數(shù)器私有主要是為了線程切換后能恢復(fù)到正確的執(zhí)行位置。

為什么程序計(jì)數(shù)器、虛擬機(jī)棧和本地方法棧是線程私有的呢

  - 虛擬機(jī)棧和本地方法棧為什么是私有的?

  - 虛擬機(jī)棧: 每個(gè) Java 方法在執(zhí)行的同時(shí)會(huì)創(chuàng)建一個(gè)棧幀用于存儲(chǔ)局部變量表、操作數(shù)棧、常量池引用等信息。從方法調(diào)用直至執(zhí)行完成的過程,就對(duì)應(yīng)著一個(gè)棧幀在 Java 虛擬機(jī)棧中入棧和出棧的過程。

  - 本地方法棧: 和虛擬機(jī)棧所發(fā)揮的作用非常相似,區(qū)別是: 虛擬機(jī)棧為虛擬機(jī)執(zhí)行 Java 方法 (也就是字節(jié)碼)服務(wù),而本地方法棧則為虛擬機(jī)使用到的 Native 方法服務(wù)。

  在 HotSpot 虛擬機(jī)中和 Java 虛擬機(jī)棧合二為一。 所以,為了保證線程中的局部變量不被別的線程訪問到,虛擬機(jī)棧和本地方法棧是線程私有的。

聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。

學(xué)習(xí)資源站

  • 免費(fèi)全套視頻教程
  • 企業(yè)實(shí)戰(zhàn)項(xiàng)目源碼
  • 大廠筆試真題題庫
  • 行業(yè)前瞻發(fā)展趨勢(shì)

相關(guān)推薦

  • 物聯(lián)網(wǎng)中的邊緣計(jì)算是什么?請(qǐng)解釋其優(yōu)勢(shì)和應(yīng)用場(chǎng)景 答案:邊緣計(jì)算是一種將計(jì)算和數(shù)據(jù)處理能力移動(dòng)到物聯(lián)網(wǎng)設(shè)備附近的計(jì)算模型。在邊緣計(jì)算中,數(shù)據(jù)的處理和分析發(fā)生在接近數(shù)據(jù)源的設(shè)備或邊緣節(jié)點(diǎn)上,而不是傳輸?shù)竭h(yuǎn)程云端進(jìn)行處理。邊緣計(jì)算的優(yōu)勢(shì)包括:低延遲:通過
  • 什么是物聯(lián)網(wǎng)(IoT)?請(qǐng)解釋其核心原理和應(yīng)用領(lǐng)域 答案:物聯(lián)網(wǎng)是指通過互聯(lián)網(wǎng)連接和交互的物理設(shè)備網(wǎng)絡(luò)。它基于傳感器、嵌入式系統(tǒng)、無線通信技術(shù)等,將各種物理設(shè)備連接起來,實(shí)現(xiàn)設(shè)備之間的數(shù)據(jù)交換和智能化控制。物聯(lián)網(wǎng)的核心原理包括:感知和采集:通過傳感器和
  • 談?wù)劸W(wǎng)絡(luò)的分層結(jié)構(gòu) 1. 物理層:不是指具體的物理設(shè)備 指的是物理設(shè)備的標(biāo)準(zhǔn)制定 (網(wǎng)線 光纖的接口類型 網(wǎng)卡的電流強(qiáng)弱)比特流 2. 數(shù)據(jù)鏈路層:負(fù)責(zé)完整的幀數(shù)據(jù)收發(fā) (幀數(shù)據(jù)可以獨(dú)立在網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)) mac地址封裝和解封裝,交換器就工作在這一層
  • git和GitHub關(guān)系 它是一個(gè)用于 Linux內(nèi)核開發(fā)的版本管理工具,是可以在你電腦不聯(lián)網(wǎng)的情況下,只在本地使用的一個(gè)版本管理工具,其作用就是可以讓你更好的管理你的程序,比如你原來提交過的內(nèi)容,以后雖然修改了,但是通過git這個(gè)工具,可以把你原來提交的內(nèi)容重現(xiàn)出來,這樣對(duì)于你后來才意識(shí)到的一些錯(cuò)誤的更改,可以進(jìn)行還原。
  • 多線程開發(fā)帶來的問題與解決方法? 線程安全問題指的是在某一線程從開始訪問到結(jié)束訪問某一數(shù)據(jù)期間,該數(shù)據(jù)被其他的線程所修改,那么對(duì)于當(dāng)前線程而言,該線程就發(fā)生了線程安全問題,表現(xiàn)形式為數(shù)據(jù)的缺失,數(shù)據(jù)不一致等。
  • sleep()方法和wait()方法區(qū)別和共同點(diǎn)? - sleep()方法屬于Thread類的靜態(tài)方法,作用于當(dāng)前線程;而wait()方法是Object類的實(shí)例方法,作用于對(duì)象本身。 - 執(zhí)行sleep()方法后,可以通過超時(shí)或者調(diào)用interrupt()方法喚醒休眠中的線程;執(zhí)行wait()方法后,通過調(diào)用notify()或notifyAll()方法喚醒等待線程。
  • 主站蜘蛛池模板: 极品人妻少妇一区二区三区| 日本免费电影一区| 好湿好大硬得深一点动态图91精品福利一区二区| 日本美女一区二区三区| 少妇无码一区二区三区| 亚洲性日韩精品国产一区二区| 亚洲一区精彩视频| 亚洲国产精品一区二区第一页 | 精品一区二区三区波多野结衣| 波多野结衣中文一区| 在线精品亚洲一区二区| 久久福利一区二区| 久久中文字幕一区二区| 国产精品被窝福利一区| 一区二区三区四区在线播放| 国产大秀视频一区二区三区| 午夜爽爽性刺激一区二区视频| 影音先锋中文无码一区| 精品午夜福利无人区乱码一区| 农村乱人伦一区二区| 国产午夜精品一区二区三区 | 三级韩国一区久久二区综合| 国产精品乱码一区二区三| 成人区精品一区二区不卡亚洲| 3d动漫精品成人一区二区三| 奇米精品视频一区二区三区| 奇米精品视频一区二区三区| 麻豆一区二区三区精品视频 | 久久久国产一区二区三区| 亚洲第一区在线观看| 精品国产亚洲一区二区在线观看 | 国产日韩精品视频一区二区三区 | 无码播放一区二区三区| 日本视频一区在线观看免费| 精品视频一区二区三区四区| 伊人色综合一区二区三区影院视频| 色一情一乱一伦一区二区三欧美 | 国产成人一区二区在线不卡 | 日韩免费无码视频一区二区三区| 久久婷婷色一区二区三区| 伊人久久一区二区三区无码|