偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Java程序計(jì)數(shù)器刨根問(wèn)底,大部分程序員都收藏起來(lái)了

開(kāi)發(fā) 后端 新聞
程序計(jì)數(shù)器是當(dāng)前線程正在執(zhí)行的字節(jié)碼的地址。程序計(jì)數(shù)器是線程隔離的,每一個(gè)線程在工作的時(shí)候都有一個(gè)獨(dú)立的計(jì)數(shù)器。

 [[273204]]

JAVA虛擬機(jī)管理的內(nèi)存區(qū)域圖

Java程序計(jì)數(shù)器刨根問(wèn)底,大部分程序員都收藏起來(lái)了

 

1.什么是程序計(jì)數(shù)器?

程序計(jì)數(shù)器是當(dāng)前線程正在執(zhí)行的字節(jié)碼的地址。程序計(jì)數(shù)器是線程隔離的,每一個(gè)線程在工作的時(shí)候都有一個(gè)獨(dú)立的計(jì)數(shù)器。

2.字節(jié)碼的執(zhí)行原理

編譯后的字節(jié)碼在沒(méi)有經(jīng)過(guò)JIT(實(shí)時(shí)編譯器)編譯前,是通過(guò)字節(jié)碼解釋器進(jìn)行解釋執(zhí)行。其執(zhí)行原理為:字節(jié)碼解釋器讀取內(nèi)存中的字節(jié)碼,按照順序讀取字節(jié)碼指令,讀取一個(gè)指令就將其翻譯成固定的操作,根據(jù)這些操作進(jìn)行分支,循環(huán),跳轉(zhuǎn)等動(dòng)作。

3.程序計(jì)數(shù)器的作用?

從字節(jié)碼的執(zhí)行原理來(lái)看,單線程的情況下程序計(jì)數(shù)器是可有可無(wú)的。因?yàn)榧词箾](méi)有程序計(jì)數(shù)器的情況下,程序會(huì)按照指令順序執(zhí)行下去,即使遇到了分支跳轉(zhuǎn)這樣的流程也會(huì)按照跳轉(zhuǎn)到指定的指令處繼續(xù)順序執(zhí)行下去,是完全能夠保證執(zhí)行順序的。

但是現(xiàn)實(shí)中程序往往是多線程協(xié)作完成任務(wù)的。JVM的多線程是通過(guò)CPU時(shí)間片輪轉(zhuǎn)來(lái)實(shí)現(xiàn)的,某個(gè)線程在執(zhí)行的過(guò)程中可能會(huì)因?yàn)闀r(shí)間片耗盡而掛起。當(dāng)它再次獲取時(shí)間片時(shí),需要從掛起的地方繼續(xù)執(zhí)行。在JVM中,通過(guò)程序計(jì)數(shù)器來(lái)記錄程序的字節(jié)碼執(zhí)行位置。程序計(jì)數(shù)器具有線程隔離性,每個(gè)線程擁有自己的程序計(jì)數(shù)器

4.程序計(jì)數(shù)器的特點(diǎn)

(1)程序計(jì)數(shù)器具有線程隔離性

(2)程序計(jì)數(shù)器占用的內(nèi)存空間非常小,可以忽略不計(jì)

(3)程序計(jì)數(shù)器是java虛擬機(jī)規(guī)范中唯一一個(gè)沒(méi)有規(guī)定任何OutofMemeryError的區(qū)域

(4)程序執(zhí)行的時(shí)候,程序計(jì)數(shù)器是有值的,其記錄的是程序正在執(zhí)行的字節(jié)碼的地址

(5)執(zhí)行native本地方法時(shí),程序計(jì)數(shù)器的值為空。原因是native方法是java通過(guò)jni調(diào)用本地C/C++庫(kù)來(lái)實(shí)現(xiàn),非java字節(jié)碼實(shí)現(xiàn),所以無(wú)法統(tǒng)計(jì)

責(zé)任編輯:華軒 來(lái)源: 今日頭條
相關(guān)推薦

2019-09-12 09:56:13

程序員技能開(kāi)發(fā)者

2019-10-11 10:05:30

程序員固態(tài)硬盤(pán)Google

2019-07-04 10:49:13

HTTPWebSocket協(xié)議

2020-03-03 18:59:47

CDN緩存程序員

2019-11-24 19:34:04

HTTP長(zhǎng)連接短連接

2015-07-02 15:04:53

CSS好奇心+

2019-07-26 08:33:28

HTTP服務(wù)端負(fù)載均衡

2021-11-30 22:59:28

程序員IT架構(gòu)師

2022-04-20 11:41:45

Kafka數(shù)據(jù)解決方案

2019-06-12 10:35:49

程序員高效工具開(kāi)源

2019-09-23 20:00:34

MySQL數(shù)據(jù)庫(kù)程序員

2009-09-21 08:47:57

Windows 7文件管理

2013-10-10 15:41:38

綠色數(shù)據(jù)中心數(shù)據(jù)中心

2012-09-07 09:23:01

Win 8操作系統(tǒng)

2020-04-15 16:07:01

程序員技術(shù)數(shù)據(jù)

2010-03-22 16:51:31

無(wú)線網(wǎng)絡(luò)穩(wěn)定性

2023-02-07 08:36:32

2020-04-03 08:42:08

Servelt3程序員Tomcat

2021-02-09 08:13:51

項(xiàng)目內(nèi)存TCP

2024-11-01 11:10:51

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)