JVM的程序計數(shù)器是什么意思?

一、概念
多線程的Java應(yīng)用程序:為了讓每個線程正常工作就提出了程序計數(shù)器(Programe Counter Register),每個線程都有自己的程序計數(shù)器這樣當線程執(zhí)行切換的時候就可以在上次執(zhí)行的基礎(chǔ)上繼續(xù)執(zhí)行,僅僅從一條線程線性執(zhí)行的角度而言,代碼是一條一條的往下執(zhí)行的,這個時候就是程序計數(shù)器;JVM就是通過讀取程序計數(shù)器的值來決定下一條需要執(zhí)行的字節(jié)碼指令,進而進行選擇語句、循環(huán)、異常處理等;

二、舉例

1.生活案例
比如老王正在看片,他看到三十五分鐘的時候,突然他的QQ好友蒼老師給他開視頻,這時候肯定打斷他看片了,假設(shè)蒼老師和他視頻完了,他肯定要接著他那35分鐘的進度去繼續(xù)看,這時候他怎么知道我看到35分鐘了?這時候程序計數(shù)器就起了作用,他負責管理進度。

2.代碼層面
將上面的例子轉(zhuǎn)換成代碼,是這樣的:
A線程正在執(zhí)行HelloWorld.class的第三十五行。這時候CPU時間片被B線程搶走了,當A線程重新被分配到時間片時,他怎么知道我的class運行到哪了?這時候他可以看程序計數(shù)器在哪個位置。

三、總結(jié)
程序計數(shù)器作用不多說了,我個人感覺他是為了多線程而生的,單線程情況下完全不需要他。從案例中不難發(fā)現(xiàn),程序計數(shù)器是每個線程獨有的,并非線程共享的!

若有興趣,歡迎來加入群,【Java初學者學習交流群】:458430385,此群有Java開發(fā)人員、UI設(shè)計人員和前端工程師。有問必答,共同探討學習,一起進步!
歡迎關(guān)注我的微信公眾號【Java碼農(nóng)社區(qū)】,會定時推送各種干貨:


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

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

  • 從三月份找實習到現(xiàn)在,面了一些公司,掛了不少,但最終還是拿到小米、百度、阿里、京東、新浪、CVTE、樂視家的研發(fā)崗...
    時芥藍閱讀 42,796評論 11 349
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,554評論 19 139
  • 這篇文章是我之前翻閱了不少的書籍以及從網(wǎng)絡(luò)上收集的一些資料的整理,因此不免有一些不準確的地方,同時不同JDK版本的...
    高廣超閱讀 16,051評論 3 83
  • 江小魚是個大大咧咧的姑娘,用我的話來講,就是不長腦子。女同事面色難看,肚子疼。她就在辦公室問別人,是不是大姨...
    六兒威武閱讀 345評論 0 0
  • 一個五個月為了身材強行給孩子斷奶的媽。 一個七個月就把孩子扔在老人身邊獨自逍遙世界的媽。 一個一歲多才見到真娃的媽...
    Lady娜姐姐閱讀 772評論 5 11

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