此部分為隱藏內(nèi)容,請輸入驗證碼后查看
掃描右側(cè)圖片或微信搜索 “ Java技術(shù)分享屋
” ,回復(fù) “ 驗證碼
” ,獲取驗證密碼。
本資料僅供讀者預(yù)覽及學(xué)習(xí)交流使用,不能用于商業(yè)用途,請在下載后24小時內(nèi)刪除。如果喜歡,請購買正版!
一.資料圖片
二.資料簡介
深入理解JAVA內(nèi)存模型從最基礎(chǔ)、排版、jmm設(shè)計等多方面為大家講訴模型的建立和使用,全書共分為五大部分,圍繞內(nèi)存管理、執(zhí)行子系統(tǒng)、程序編譯與優(yōu)化、高效并發(fā)等核心主題對JVM進行了全面而深入的分析,深刻揭示了JVM的工作原理!
第1部分,基本概念
包括“并發(fā)、同步、主內(nèi)存、本地內(nèi)存、重排序、內(nèi)存屏障、happensbefore規(guī)則、as-if-serial規(guī)則、數(shù)據(jù)依賴性、順序一致性模型、JMM的含義和意義”。
第2部分,同步機制
該部分中就介紹了“同步”的3種方式:volatile、鎖、final。對于每一種方式,從該方式的“特性”、“建立的happensbefore關(guān)系”、“對應(yīng)的內(nèi)存語義”、“實現(xiàn)方式”等幾個方面進行了分析說明。實際上,JMM保證“如果程序正確同步,則執(zhí)行結(jié)果與順序一致性內(nèi)存模型的結(jié)果相同”的機制;而這部分這是確保程序正確同步的機制。
深入理解java<a href=虛擬機" src="http://pic.xz7.com/upload/2017-8/201783174927431530.png" width="403" height="525"/>
第3部分,JMM總結(jié)
JMM保證:如果程序是正確同步的,程序的執(zhí)行將具有順序一致性。
從JMM設(shè)計者的角度來說,在設(shè)計JMM時,需要考慮兩個關(guān)鍵因素:
(01)程序員對內(nèi)存模型的使用。程序員希望內(nèi)存模型易于理解,易于編程。程序員希望基于一個強內(nèi)存模型(程序盡可能的順序執(zhí)行)來編寫代碼。
(02)編譯器和處理器對內(nèi)存模型的實現(xiàn)。編譯器和處理器希望內(nèi)存模型對它們的束縛越少越好,這樣它們就可以做盡可能多的優(yōu)化(對程序重排序,做盡可能多的并發(fā))來提高性能。編譯器和處理器希望實現(xiàn)一個弱內(nèi)存模型。
JMM設(shè)計就需要在這兩者之間作出協(xié)調(diào)。JMM對程序采取了不同的策略:
(01)對于會改變程序執(zhí)行結(jié)果的重排序,JMM要求編譯器和處理器必須禁止這種重排序。
(02)對于不會改變程序執(zhí)行結(jié)果的重排序,JMM對編譯器和處理器不作要求(JMM允許這種重排序)。
三.資料目錄
深入理解java內(nèi)存模型(一)——基礎(chǔ)
深入理解java內(nèi)存模型(二)——重排序
深入理解java內(nèi)存模型(三)——順序一致性
深入理解java內(nèi)存模型(四)——volatile
深入理解java內(nèi)存模型(五)——鎖
深入理解java內(nèi)存模型(六)——final
深入理解java內(nèi)存模型(七)——總結(jié)