注冊(cè) | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)軟件與程序設(shè)計(jì)Java高并發(fā)編程詳解:多線程與架構(gòu)設(shè)計(jì)

Java高并發(fā)編程詳解:多線程與架構(gòu)設(shè)計(jì)

Java高并發(fā)編程詳解:多線程與架構(gòu)設(shè)計(jì)

定 價(jià):¥89.00

作 者: 汪文君 著
出版社: 機(jī)械工業(yè)出版社
叢編項(xiàng): Java核心技術(shù)系列
標(biāo) 簽: 暫缺

ISBN: 9787111599937 出版時(shí)間: 2018-05-01 包裝: 平裝
開本: 16開 頁數(shù): 379 字?jǐn)?shù):  

內(nèi)容簡介

  本書主要包含四個(gè)部分: 部分主要闡述Thread的基礎(chǔ)知識(shí),詳細(xì)介紹線程的API使用、線程安全、線程間數(shù)據(jù)通信,以及如何保護(hù)共享資源等內(nèi)容,它是深入學(xué)習(xí)多線程內(nèi)容的基礎(chǔ)。 第二部分引入了ClassLoader,這是因?yàn)镃lassLoader與線程不無關(guān)系,我們可以通過synchronized關(guān)鍵字,或者Lock等顯式鎖的方式在代碼的編寫階段對(duì)共享資源進(jìn)行數(shù)據(jù)一致性保護(hù),那么一個(gè)Class在完成初始化的整個(gè)過程到后在方法區(qū)(JDK8 以后在元數(shù)據(jù)空間)其數(shù)據(jù)結(jié)構(gòu)是怎樣確保數(shù)據(jù)一致性的呢?這就需要對(duì)ClassLoader有一個(gè)比較全面的認(rèn)識(shí)和了解。 第三部分詳細(xì)、深入地介紹volatile關(guān)鍵字的語義,volatile關(guān)鍵字在Java中非常重要,可以說它奠定了Java核心并發(fā)包的高效運(yùn)行,在這一部分中,我們通過實(shí)例展示了如何使用volatile關(guān)鍵字以及非常詳細(xì)地介紹了Java內(nèi)存模型等知識(shí)。 本書的第四部分,站在程序架構(gòu)設(shè)計(jì)的角度深入講解了如何設(shè)計(jì)高效靈活的多線程應(yīng)用程序,這一部分長達(dá)15個(gè)章節(jié),其重要程度可見一斑。

作者簡介

  汪文君 某數(shù)據(jù)服務(wù)中心技術(shù)經(jīng)理、技術(shù)專家,目前專注于實(shí)時(shí)數(shù)據(jù)data pipeline平臺(tái)的構(gòu)建與架構(gòu),曾有7年多的移動(dòng)通訊工作經(jīng)驗(yàn),以及移動(dòng)互聯(lián)網(wǎng)、云計(jì)算和B2C電子商務(wù)平臺(tái)的開發(fā)架構(gòu)經(jīng)驗(yàn),熱衷于技術(shù)分享、技術(shù)細(xì)節(jié)錘煉。目前已錄制10余套技術(shù)視頻,在互聯(lián)網(wǎng)上廣泛傳播。

圖書目錄

第一部分:多線程基礎(chǔ) 20
第1章:快速認(rèn)識(shí)線程 22
1.1 線程的介紹 22
1.2 快速創(chuàng)建并啟動(dòng)一個(gè)線程 22
1.2.1 嘗試并行運(yùn)行 23
1.2.2 并發(fā)運(yùn)行交替輸出 24
1.2.3 使用Jconsole觀察線程 25
1.3 線程的生命周期詳解 26
1.3.1 線程的NEW狀態(tài) 27
1.3.2 線程的RUNNABLE狀態(tài) 28
1.3.3 線程的 RUNNING狀態(tài) 28
1.3.4 線程的BLOCKED狀態(tài) 29
1.3.5 線程的TERMINATED狀態(tài) 29
1.4 線程的start方法剖析--模板設(shè)計(jì)模式在Thread中的應(yīng)用 30
1.4.1 Thread start方法源碼分析以及注意事項(xiàng) 30
1.4.2 模板設(shè)計(jì)模式在Thread中的應(yīng)用 33
1.4.3 Thread模擬營業(yè)大廳叫號(hào)機(jī)程序 34
1.5 Runnable接口的引入以及策略模式在Thread中的使用 39
1.5.1 Runnable的職責(zé) 39
1.5.2 策略模式在Thread中的應(yīng)用 40
1.5.3 模擬營業(yè)大廳叫號(hào)機(jī)程序 42
1.6 本章總結(jié) 43
第2章:深入理解Thread構(gòu)造函數(shù) 45
2.1 線程的命名 45
2.1.1 線程的默認(rèn)命名 45
2.1.2 命名線程 46
2.1.3 修改線程的名字 47
2.2 線程的父子關(guān)系 48
2.3 Thread與ThreadGroup 48
2.4 Thread與Runnable 50
2.5 Thread與JVM虛擬機(jī)棧 50
2.5.1 Thread與Stacksize 51
2.5.2 JVM內(nèi)存結(jié)構(gòu) 53
2.5.3 Thread與虛擬機(jī)棧 58
2.6 守護(hù)線程 62
2.6.1 什么是守護(hù)線程 62
2.6.2 守護(hù)線程的作用 64
2.7 本章總結(jié) 64
第3章:Thread API的詳細(xì)介紹 66
3.1 線程sleep 66
3.1.1 sleep方法介紹 66
3.1.2 使用TimeUnit替代Thread.sleep 67
3.2 線程yield 68
3.2.1 yield方法介紹 68
3.2.2 yield vs sleep 69
3.3 設(shè)置線程的優(yōu)先級(jí) 69
3.3.1 線程優(yōu)先級(jí)介紹 70
3.3.2 線程優(yōu)先級(jí)源碼分析 71
3.3.3 關(guān)于優(yōu)先級(jí)的一些總結(jié) 72
3.4 獲取線程ID 73
3.5 獲取當(dāng)前線程 73
3.6 設(shè)置線程上下文類加載器 74
3.7 線程interrupt 75
3.7.1 interrupt 75
3.7.2 isInterrupted 77
3.7.3 interrupted 79
3.7.4 interrupt注意事項(xiàng) 81
3.8 線程join 82
3.8.1 線程join方法詳解 83
3.8.2 join方法結(jié)合實(shí)戰(zhàn) 85
3.9 如何關(guān)閉一個(gè)線程 90
3.9.1 正常關(guān)閉 90
3.9.2 異常退出 94
3.9.3 進(jìn)程假死 94
3.10 本章總結(jié) 95
第4章:線程安全與數(shù)據(jù)同步 97
4.1 數(shù)據(jù)同步 97
4.1.1 數(shù)據(jù)不一致問題的引入 97
4.1.2 數(shù)據(jù)不一致問題原因分析 99
4.2 初識(shí) synchronized關(guān)鍵字 101
4.2.1 什么是synchronized 102
4.2.2 synchronized關(guān)鍵字的用法 103
4.3 深入synchronized關(guān)鍵字 105
4.3.1 線程堆棧分析 105
4.3.2 JVM指令分析 108
4.3.3 使用synchronized需要注意的問題 112
4.4 This Monitor和Class Monitor的詳細(xì)介紹 114
4.4.1 this monitor 114
4.4.2 class monitor 117
4.5 程序死鎖的原因以及如何診斷 120
4.5.1 程序死鎖 120
4.5.2 程序死鎖舉例 121
4.5.3 死鎖診斷 124
4.6 本章總結(jié) 126
第5章:線程間通信 127
5.1 同步阻塞與異步非阻塞 127
5.1.1 同步阻塞消息處理 127
5.1.2 異步非阻塞消息處理 128
5.2 單線程間通信 129
5.2.1 初識(shí)wait和notify 129
5.2.2 wait和notify方法詳解 133
5.2.3 wait和notify注意事項(xiàng) 135
5.2.4 wait vs sleep 137
5.3 多線程間通信 137
5.3.1 生產(chǎn)者消費(fèi)者 137
5.3.2 線程休息室wait set 140
5.4 自定義顯式鎖BooleanLock 141
5.4.1 synchronized關(guān)鍵字的缺陷 142
5.4.2 顯式鎖BooleanLock 143
5.5 本章總結(jié) 153
第6章:ThreadGroup詳細(xì)講解 155
6.1 ThreadGroup與Thread 155
6.2 創(chuàng)建Thread Group 155
6.3 拷貝Thread數(shù)組和ThreadGroup數(shù)組 157
6.3.1 拷貝Thread數(shù)組 157
6.3.2 拷貝ThreadGroup數(shù)組 159
6.4 ThreadGroup操作 160
6.4.1 ThreadGroup的基本操作 161
6.4.2 ThreadGroup的interrupt 164
6.4.3 ThreadGroup的destroy 166
6.4.4 守護(hù)ThreadGroup 168
6.5 本章總結(jié) 169
第7章:Hook線程以及捕獲線程執(zhí)行異常 170
7.1 獲取線程運(yùn)行時(shí)異常 170
7.1.1 UncaughtExceptionHandler介紹 170
7.1.2 UncaughtExceptionHandler實(shí)例 171
7.1.3 UncaughtExceptionHandler源碼分析 173
7.2 注入鉤子線程(Hook) 175
7.2.1 Hook線程介紹 175
7.2.2 Hook線程實(shí)戰(zhàn) 177
7.2.3 Hook線程應(yīng)用場(chǎng)景以及注意事項(xiàng) 179
7.3 本章總結(jié) 179
第8章:線程池原理以及自定義線程池 180
8.1 線程池原理 180
8.2 線程池實(shí)現(xiàn) 181
8.2.1 線程池接口定義 182
8.2.2 線程池詳細(xì)實(shí)現(xiàn) 188
8.3 線程池應(yīng)用 198
8.4 本章總結(jié) 202
第二部分:Java ClassLoader 204
第9章 類的加載過程 205
9.1 類的加載過程介紹 205
9.2 類的主動(dòng)使用和被動(dòng)使用 206
9.3 類加載過程詳解 209
9.3.1 類的加載階段 210
9.3.2 類的連接階段 212
9.3.3 類的初始化階段 219
9.4 本章總結(jié) 221
第10章 JVM類加載器 224
10.1 JVM內(nèi)置三大類加載器 224
10.1.1 根類加載器介紹 225
10.1.2 擴(kuò)展類加載器介紹 226
10.1.3 系統(tǒng)類加載器介紹 227
10.2 自定義類加載器 227
10.2.1 自定義類加載器,問候世界 228
10.2.2 雙親委托機(jī)制詳細(xì)介紹 233
10.2.3 破壞雙親委托機(jī)制 236
10.2.4 類加載器命名空間,運(yùn)行時(shí)包,類的卸載等 239
10.3 本章總結(jié) 246
第11章 線程上下文類加載器 249
11.1 為什么需要線程上下文類加載器 249
11.2 數(shù)據(jù)庫驅(qū)動(dòng)的初始化源碼分析 250
第三部分 深入理解volatile關(guān)鍵字 254
第12章 volatile關(guān)鍵字的介紹 255
12.1 初識(shí)volatile關(guān)鍵字 255
12.2 機(jī)器硬件CPU 257
12.3 Java 內(nèi)存模型 262
第13章 深入volatile關(guān)鍵字 265
13.1 并發(fā)編程的三個(gè)重要特性 265
13.1.1 原子性 265
13.1.2 可見性 266
13.1.3 有序性 266
13.2 JMM如何保證三大特性 268
13.2.1 JMM與原子性 269
13.2.2 JMM與可見性 271
13.2.3 JMM與有序性 272
13.3 volatile關(guān)鍵字深入解析 273
13.3.1 volatile關(guān)鍵字的語義 274
13.3.2 volatile的原理和實(shí)現(xiàn)機(jī)制 277
13.3.3 volatile的使用場(chǎng)景 278
......

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)