3.1可見性 為了確保多個(gè)線程之間對內(nèi)存寫入的可見性,就必須使用同步機(jī)制 在沒有同步的情況下久又,編譯器巫延、處理器以及運(yùn)行時(shí)等都可能對操作的執(zhí)行順序進(jìn)行一些意想不到調(diào)整。在缺乏足夠...
![240](https://cdn2.jianshu.io/assets/default_avatar/14-0651acff782e7a18653d7530d6b27661.jpg?imageMogr2/auto-orient/strip|imageView2/1/w/240/h/240)
3.1可見性 為了確保多個(gè)線程之間對內(nèi)存寫入的可見性,就必須使用同步機(jī)制 在沒有同步的情況下久又,編譯器巫延、處理器以及運(yùn)行時(shí)等都可能對操作的執(zhí)行順序進(jìn)行一些意想不到調(diào)整。在缺乏足夠...
要編寫線程安全的代碼炉峰,核心在于對狀態(tài)訪問操作進(jìn)行管理,特別是共享的(Shared)和可變的(Mutable)訪問 對象的狀態(tài)指存儲在狀態(tài)變量(實(shí)例變量脉执、靜態(tài)域)中的數(shù)據(jù)疼阔,對象...
1.1并發(fā)簡史 操作系統(tǒng)多進(jìn)程出現(xiàn)的原因 資源利用率:一個(gè)程序等待某個(gè)外部操作的時(shí)候運(yùn)行另一個(gè)程序 公平性:粗粒度的時(shí)間分片共享計(jì)算機(jī)資源 便利性:多個(gè)程序執(zhí)行多個(gè)任務(wù) 促使...
13.1概述 13.2線程安全 當(dāng)多個(gè)線程訪問一個(gè)對象的時(shí)婆廊,如果不用考慮這些線程在運(yùn)行時(shí)環(huán)境下的調(diào)度和交替執(zhí)行,也不需要進(jìn)行額外的同步玻熙,或者在調(diào)用方法進(jìn)行任何其他的協(xié)調(diào)操作否彩,...
12.1概述 衡量一個(gè)服務(wù)端的好壞嗦随,每秒事物處理數(shù)(Transactions Per second列荔,TPS)是最重要的指標(biāo)之一 12.2硬件的效率與一致性 基于高速緩存的存儲...
11.1概述 為了提高熱點(diǎn)代碼的運(yùn)行效率,在運(yùn)行時(shí)贴浙,虛擬機(jī)會(huì)把這些代碼編譯成與本地平臺相關(guān)的機(jī)器碼砂吞,并進(jìn)行各種層次的優(yōu)化,完成這個(gè)任務(wù)的編譯器稱為即時(shí)編譯器(Just In ...
10.1概述 Java語言的“編譯期”其實(shí)是個(gè)“不確定”的過程: 前端編譯器:把Java文件編譯成class文件蜻直,例如Sun的javac、Eclipse JDT中的增量編譯器...
9.1概述 在class文件格式和執(zhí)行引擎這部分內(nèi)容中概而,用戶程序能直接影響的并不多,Class文件以何種形式存儲囱修,類型何時(shí)加載赎瑰、如何連接,以及虛擬機(jī)如何執(zhí)行字節(jié)碼指令都由虛擬...
8.1概述 執(zhí)行引擎:輸入字節(jié)碼文件餐曼,處理過程是字節(jié)碼解析的等效過程,輸出的是執(zhí)行結(jié)果 8.2運(yùn)行時(shí)棧幀結(jié)構(gòu) 棧幀是虛擬機(jī)用于方法調(diào)用和方法執(zhí)行的數(shù)據(jù)結(jié)構(gòu)鲜漩,是虛擬機(jī)運(yùn)行時(shí)數(shù)據(jù)...
7.1概述 虛擬機(jī)把描述類的數(shù)據(jù)從class文件加載到內(nèi)存,經(jīng)過校驗(yàn)孕似、轉(zhuǎn)換解析踩娘、初始化,最形成能夠被虛擬機(jī)直接使用的java類型喉祭,這就是虛擬機(jī)的加載過程 類的加載霸饲、連接、初始...
6.1概述 計(jì)算機(jī)只能識別0和1 虛擬機(jī)以及建立在虛擬機(jī)上語言的出現(xiàn)厚脉,使編寫的程序編譯成二進(jìn)制本地機(jī)碼(native code)非唯一選擇,越來越多編程語言選擇了與操作系統(tǒng)和...
3.1概述 3.2對象已死嗎 3.2.1引用計(jì)數(shù)法 實(shí)現(xiàn)簡單傻工、判定效率高 無法解決循環(huán)引用的問題 主流虛擬機(jī)沒有采用 3.2.2可達(dá)性分析算法 通過一系列稱作“GC Root...
5.1概述 5.2案例分析 5.2.1高性能硬件上的程序部署 兩種方式 通過64位JDK使用大內(nèi)存 內(nèi)存回收導(dǎo)致長時(shí)間停頓 現(xiàn)階段令花,64位JDK的性能結(jié)果普遍低于32位JDK...
4.1概述 定位問題雾消,知識坊饶、經(jīng)驗(yàn)是關(guān)鍵基礎(chǔ)泄伪,數(shù)據(jù)是依據(jù),工具是運(yùn)用知識處理數(shù)據(jù)的手段 數(shù)據(jù)包含:運(yùn)行日志匿级、異常堆棧蟋滴、GC日志染厅、線程快照(threaddump/javacore...
2.1概述 講解內(nèi)存各個(gè)區(qū)域的作用津函、服務(wù)對象以及其中可能產(chǎn)生的問題 2.2運(yùn)行時(shí)數(shù)據(jù)區(qū) 2.2.1程序計(jì)數(shù)器 當(dāng)前線程所執(zhí)行的字節(jié)碼的行號顯示器 每個(gè)線程都有獨(dú)立的程序計(jì)數(shù)器...
介紹java技術(shù)體系的過去、現(xiàn)在尔苦、和未來的發(fā)展趨勢涩馆;如何獨(dú)立的編譯一個(gè)OpenJDK7 1.1概述 java不僅僅是一種編程語言,還是一個(gè)由一系列計(jì)算機(jī)軟件和規(guī)范形成的技術(shù)體...