Java多線程編程實(shí)戰(zhàn)指南(核心篇)_第1頁
Java多線程編程實(shí)戰(zhàn)指南(核心篇)_第2頁
Java多線程編程實(shí)戰(zhàn)指南(核心篇)_第3頁
Java多線程編程實(shí)戰(zhàn)指南(核心篇)_第4頁
Java多線程編程實(shí)戰(zhàn)指南(核心篇)_第5頁
已閱讀5頁,還剩52頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、Java多線程編程實(shí)戰(zhàn)指南(核心篇)Java多線程編程實(shí)戰(zhàn)指南(核心篇)01本書內(nèi)容及特色01本書內(nèi)容及特色本書內(nèi)容及特色本書內(nèi)容及特色02目標(biāo)讀者02目標(biāo)讀者目標(biāo)讀者目標(biāo)讀者03本書約定03本書約定本書約定本書約定04配套源碼下載04配套源碼下載配套源碼下載配套源碼下載05與作者聯(lián)系05與作者聯(lián)系與作者聯(lián)系與作者聯(lián)系06讀者服務(wù)06讀者服務(wù)讀者服務(wù)讀者服務(wù)07第一部分 多線程編程基礎(chǔ)07第一部分 多線程編程基礎(chǔ)1 走近Java世界中的線程第一部分 多線程編程基礎(chǔ)1.2 多線程編程簡介1.2.2 為什么使用多線程1.3.1 線程的創(chuàng)建、啟動(dòng)與運(yùn)行1.1 進(jìn)程、線程與任務(wù)1.2.1 什么是多線程

2、編程1.3 Java線程API簡介1 走近Java世界中的線程第一部分 多線程編程基礎(chǔ)1.2 第一部分 多線程編程基礎(chǔ)1 走近Java世界中的線程1.3.2 Runnable接口1.3.4 Thread類的常用方法1.4 無處不在的線程1.3.3 線程屬性1.3.5 Thread類的一些廢棄方法1.5 線程的層次關(guān)系第一部分 多線程編程基礎(chǔ)1 走近Java世界中的線程1.3.1 走近Java世界中的線程第一部分 多線程編程基礎(chǔ)1.7 線程的監(jiān)視1.9 多線程編程的優(yōu)勢和風(fēng)險(xiǎn)1.6 線程的生命周期狀態(tài)1.8 多線程編程簡單運(yùn)用實(shí)例1.10 本章小結(jié)1 走近Java世界中的線程第一部分 多線程編程

3、基礎(chǔ)1.7 2 線程編程的目標(biāo)與挑戰(zhàn)第一部分 多線程編程基礎(chǔ)2.2 競態(tài)2.2.2 競態(tài)的模式與競態(tài)產(chǎn)生的條件2.4 原子性2.1 串行、并發(fā)與并行2.2.1 二維表分析法:解釋競態(tài)的結(jié)果2.3 線程安全性2 線程編程的目標(biāo)與挑戰(zhàn)第一部分 多線程編程基礎(chǔ)2.2 競態(tài)2 線程編程的目標(biāo)與挑戰(zhàn)第一部分 多線程編程基礎(chǔ)2.5 可見性2.6 有序性2.6.1 重排序的概念2.6.4 貌似串行語義2.6.3 存儲(chǔ)子系統(tǒng)重排序2.6.2 指令重排序2 線程編程的目標(biāo)與挑戰(zhàn)第一部分 多線程編程基礎(chǔ)2.5 可見2 線程編程的目標(biāo)與挑戰(zhàn)第一部分 多線程編程基礎(chǔ)2.7 上下文切換2.7.2 上下文切換的分類及具體

4、誘因2.8 線程的活性故障2.6.5 保證內(nèi)存訪問的順序性2.7.1 上下文切換及其產(chǎn)生原因2.7.3 上下文切換的開銷和測量2 線程編程的目標(biāo)與挑戰(zhàn)第一部分 多線程編程基礎(chǔ)2.7 上下第一部分 多線程編程基礎(chǔ)2 線程編程的目標(biāo)與挑戰(zhàn)2.9 資源爭用與調(diào)度2.10 本章小結(jié)第一部分 多線程編程基礎(chǔ)2 線程編程的目標(biāo)與挑戰(zhàn)2.9 資源3 Java線程同步機(jī)制第一部分 多線程編程基礎(chǔ)3.2 鎖概述3.2.2 與鎖相關(guān)的幾個(gè)概念3.3 內(nèi)部鎖:synchronized關(guān)鍵字3.1 線程同步機(jī)制簡介3.2.1 鎖的作用3.2.3 鎖的開銷及其可能導(dǎo)致的問題3 Java線程同步機(jī)制第一部分 多線程編程基

5、礎(chǔ)3.2 鎖概3 Java線程同步機(jī)制第一部分 多線程編程基礎(chǔ)3.5 鎖的適用場景3.4.4 改進(jìn)型鎖:讀寫鎖3.4.3 內(nèi)部鎖還是顯式鎖:鎖的選用3.4.2 顯式鎖與內(nèi)部鎖的比較3.4.1 顯式鎖的調(diào)度3.4 顯式鎖:Lock接口3 Java線程同步機(jī)制第一部分 多線程編程基礎(chǔ)3.5 鎖的第一部分 多線程編程基礎(chǔ)3 Java線程同步機(jī)制ABCDEF3.6 線程同步機(jī)制的底層助手:內(nèi)存屏障3.7 鎖與重排序3.8 輕量級(jí)同步機(jī)制:volatile關(guān)鍵字3.8.1 volatile的作用3.8.2 volatile變量的開銷3.8.3 volatile的典型應(yīng)用場景與實(shí)戰(zhàn)案例第一部分 多線程編程

6、基礎(chǔ)3 Java線程同步機(jī)制ABCDEFLOGOM.94275.CN第一部分 多線程編程基礎(chǔ)3 Java線程同步機(jī)制013.9 實(shí)踐:正確實(shí)現(xiàn)看似簡單的單例模式023.10 CAS與原子變量033.10.1 CAS043.10.2 原子操作工具:原子變量類053.11 對(duì)象的發(fā)布與逸出063.11.1 對(duì)象的初始化安全:重訪final與staticLOGOM.94275.CN第一部分 多線程編程基礎(chǔ)3 Ja第一部分 多線程編程基礎(chǔ)3 Java線程同步機(jī)制3.11.2 安全發(fā)布與逸出3.12 本章小結(jié)第一部分 多線程編程基礎(chǔ)3 Java線程同步機(jī)制3.11.2第一部分 多線程編程基礎(chǔ)4 牛刀小試

7、:玩轉(zhuǎn)線程4.1 挖掘可并發(fā)點(diǎn)014.2 新戰(zhàn)場上的老武器:分而治之024.3 基于數(shù)據(jù)的分割實(shí)現(xiàn)并發(fā)化034.4 基于任務(wù)的分割實(shí)現(xiàn)并發(fā)化044.4.1 按任務(wù)的資源消耗屬性分割054.4.2 實(shí)戰(zhàn)案例的啟發(fā)06第一部分 多線程編程基礎(chǔ)4 牛刀小試:玩轉(zhuǎn)線程4.1 挖掘可4 牛刀小試:玩轉(zhuǎn)線程第一部分 多線程編程基礎(chǔ)4.4.3 按處理步驟分割4.5 合理設(shè)置線程數(shù)4.6 本章小結(jié)4.5.2 線程數(shù)設(shè)置的原則4.5.1 Amdahls定律4 牛刀小試:玩轉(zhuǎn)線程第一部分 多線程編程基礎(chǔ)4.4.3 按5 線程間協(xié)作AEDFBC5.1.1 wait/notify的作用與用法5.1.2 wait/no

8、tify的開銷及問題5.1.4 wait/notify與Thread.join()5.1.3 Object.notify()/notifyAll()的選用5.2 Java條件變量5.1 等待與通知:wait/notify5 線程間協(xié)作AEDFBC5.1.1 wait/notify5 線程間協(xié)作AEDFBC5.4 柵欄(CyclicBarrier)5.5 生產(chǎn)者消費(fèi)者模式5.5.2 限購:流量控制與信號(hào)量(Semaphore)5.5.1 阻塞隊(duì)列5.5.3 管道:線程間的直接輸出與輸入5.3 倒計(jì)時(shí)協(xié)調(diào)器:CountDownLatch5 線程間協(xié)作AEDFBC5.4 柵欄(CyclicBarr5

9、 線程間協(xié)作5.5.4 一手交錢,一手交貨:雙緩沖與Exchanger5.5.5 一個(gè)還是一批:產(chǎn)品的粒度5.5.6 再探線程與任務(wù)之間的關(guān)系5.6 對(duì)不起,打擾一下:線程中斷機(jī)制5.7 線程停止:看似簡單,實(shí)則不然5.7.1 生產(chǎn)者消費(fèi)者模式中的線程停止0103020405065 線程間協(xié)作5.5.4 一手交錢,一手交貨:雙緩沖與Exc5 線程間協(xié)作5.8 本章小結(jié)5.7.2 實(shí)踐:Web應(yīng)用中的線程停止5 線程間協(xié)作5.8 本章小結(jié)5.7.2 實(shí)踐:Web應(yīng)用中5 線程間協(xié)作5.4 柵欄(CyclicBarrier)CyclicBarrier的典型應(yīng)用場景5 線程間協(xié)作5.4 柵欄(Cyc

10、licBarrier)Cy5 線程間協(xié)作5.6 對(duì)不起,打擾一下:線程中斷機(jī)制InterruptedException異常處理及中斷響應(yīng)5 線程間協(xié)作5.6 對(duì)不起,打擾一下:線程中斷機(jī)制Inte6 保障線程安全的設(shè)計(jì)技術(shù)第一部分 多線程編程基礎(chǔ)6.1 Java運(yùn)行時(shí)存儲(chǔ)空間6.3 以“不變”應(yīng)萬變:不可變對(duì)象6.4.1 線程特有對(duì)象可能導(dǎo)致的問題及其規(guī)避6.2 大公無私:無狀態(tài)對(duì)象6.4 我有我地盤:線程特有對(duì)象6.4.2 線程特有對(duì)象的典型應(yīng)用場景6 保障線程安全的設(shè)計(jì)技術(shù)第一部分 多線程編程基礎(chǔ)6.1 第一部分 多線程編程基礎(chǔ)6 保障線程安全的設(shè)計(jì)技術(shù)6.5 裝飾器模式6.6 并發(fā)集合6

11、.7 本章小結(jié)第一部分 多線程編程基礎(chǔ)6 保障線程安全的設(shè)計(jì)技術(shù)6.5 裝7 線程的活性故障第一部分 多線程編程基礎(chǔ)7.1 鷸蚌相爭:死鎖7.1.1 死鎖的檢測7.1.2 死鎖產(chǎn)生的條件與規(guī)避7.2.1 信號(hào)丟失鎖死7.2 沉睡不醒的睡美人:鎖死7.1.3 死鎖的恢復(fù)0102030405067 線程的活性故障第一部分 多線程編程基礎(chǔ)7.1 鷸蚌相爭:第一部分 多線程編程基礎(chǔ)7 線程的活性故障7.2.2 嵌套監(jiān)視器鎖死7.3 巧婦難為無米之炊:線程饑餓7.4 屢戰(zhàn)屢敗,屢敗屢戰(zhàn):活鎖7.5 本章小結(jié)第一部分 多線程編程基礎(chǔ)7 線程的活性故障7.2.2 嵌套監(jiān)8 線程管理第一部分 多線程編程基礎(chǔ)8

12、.2 可靠性:線程的未捕獲異常與監(jiān)控8.4 線程的暫掛與恢復(fù)8.5.1 任務(wù)的處理結(jié)果、異常處理與取消8.1 線程組8.3 有組織有紀(jì)律:線程工廠8.5 線程的高效利用:線程池8 線程管理第一部分 多線程編程基礎(chǔ)8.2 可靠性:線程的未LOGOM.94275.CN第一部分 多線程編程基礎(chǔ)8 線程管理8.5.2 線程池監(jiān)控018.5.3 線程池死鎖028.5.4 工作者線程的異常終止038.6 本章小結(jié)04LOGOM.94275.CN第一部分 多線程編程基礎(chǔ)8 線程第一部分 多線程編程基礎(chǔ)9 Java異步編程19.1 同步計(jì)算與異步計(jì)算39.2.1 實(shí)用工具類Executors59.3 異步計(jì)算

13、助手:FutureTask29.2 Java Executor框架49.2.2 異步任務(wù)的批量執(zhí)行:CompletionService69.3.1 實(shí)踐:實(shí)現(xiàn)XML文檔的異步解析第一部分 多線程編程基礎(chǔ)9 Java異步編程19.1 同步計(jì)9 Java異步編程第一部分 多線程編程基礎(chǔ)019.3.2 可重復(fù)執(zhí)行的異步任務(wù)029.4 計(jì)劃任務(wù)039.5 本章小結(jié)9 Java異步編程第一部分 多線程編程基礎(chǔ)019.3.2 第一部分 多線程編程基礎(chǔ)10 Java多線程程序的調(diào)試與測試10.1 多線程程序的調(diào)試技巧0110.1.1 使用監(jiān)視點(diǎn)0210.1.2 設(shè)置暫掛策略0310.2 多線程程序的測試04

14、10.2.1 可測試性0510.2.2 靜態(tài)檢查工具:FindBugs06第一部分 多線程編程基礎(chǔ)10 Java多線程程序的調(diào)試與測試第一部分 多線程編程基礎(chǔ)10 Java多線程程序的調(diào)試與測試10.2.4 多線程程序的單元測試:JCStress貳10.2.3 多線程程序的代碼復(fù)審壹10.3 本章小結(jié)叁第一部分 多線程編程基礎(chǔ)10 Java多線程程序的調(diào)試與測試08第二部分 多線程編程進(jìn)階08第二部分 多線程編程進(jìn)階第二部分 多線程編程進(jìn)階11 多線程編程的硬件基礎(chǔ)與Java內(nèi)存模型12 Java多線程程序的性能調(diào)校第二部分 多線程編程進(jìn)階11 多線程編程的硬件基礎(chǔ)與JavaLOGOM.942

15、75.CN第二部分 多線程編程進(jìn)階11 多線程編程的硬件基礎(chǔ)與Java內(nèi)存模型11.1 填補(bǔ)處理器與內(nèi)存之間的鴻溝:高速緩存0111.3 硬件緩沖區(qū):寫緩沖器與無效化隊(duì)列0311.3.2 再探內(nèi)存重排序0511.2 數(shù)據(jù)世界的交通規(guī)則:緩存一致性協(xié)議0211.3.1 存儲(chǔ)轉(zhuǎn)發(fā)0411.3.3 再探可見性06LOGOM.94275.CN第二部分 多線程編程進(jìn)階11 多第二部分 多線程編程進(jìn)階11 多線程編程的硬件基礎(chǔ)與Java內(nèi)存模型11.5.1 volatile關(guān)鍵字的實(shí)現(xiàn)11.5 Java同步機(jī)制與內(nèi)存屏障11.5.3 Java虛擬機(jī)對(duì)內(nèi)存屏障使用的優(yōu)化11.5.4 final關(guān)鍵字的實(shí)現(xiàn)1

16、1.4 基本內(nèi)存屏障11.5.2 synchronized關(guān)鍵字的實(shí)現(xiàn)010203040506第二部分 多線程編程進(jìn)階11 多線程編程的硬件基礎(chǔ)與Java第二部分 多線程編程進(jìn)階11 多線程編程的硬件基礎(chǔ)與Java內(nèi)存模型11.6 Java內(nèi)存模型0111.6.1 什么是Java內(nèi)存模型0211.6.2 happen(s)-before關(guān)系0311.6.3 再探對(duì)象的安全發(fā)布0411.6.4 JSR 1330511.7 共享變量與性能06第二部分 多線程編程進(jìn)階11 多線程編程的硬件基礎(chǔ)與Java第二部分 多線程編程進(jìn)階11 多線程編程的硬件基礎(chǔ)與Java內(nèi)存模型11.8 本章小結(jié)第二部分 多線程編程進(jìn)階11 多線程編程的硬件基礎(chǔ)與Java第二部分 多線程編程進(jìn)階12 Java多線程程序的性能調(diào)校12.1 Java虛擬機(jī)對(duì)內(nèi)部鎖的優(yōu)化0112.1.1 鎖消除0212.1.2 鎖粗化0312.1.3 偏向鎖0412.1.4 適應(yīng)性鎖0512.2 優(yōu)化對(duì)鎖的使用06第二部分 多線程編程進(jìn)階12 Java多線程程序的性能調(diào)校1第二部分 多線程編程進(jìn)階12 Java多線程程序的性能調(diào)校12.2.1 鎖的開銷與鎖爭用監(jiān)視0112.2.2 使用可參數(shù)化鎖0212.2.3 減小臨界區(qū)的長度0312.2.4 減小鎖的粒度0

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論