-
>
全國(guó)計(jì)算機(jī)等級(jí)考試最新真考題庫(kù)模擬考場(chǎng)及詳解·二級(jí)MSOffice高級(jí)應(yīng)用
-
>
決戰(zhàn)行測(cè)5000題(言語(yǔ)理解與表達(dá))
-
>
軟件性能測(cè)試.分析與調(diào)優(yōu)實(shí)踐之路
-
>
第一行代碼Android
-
>
JAVA持續(xù)交付
-
>
EXCEL最強(qiáng)教科書(shū)(完全版)(全彩印刷)
-
>
深度學(xué)習(xí)
JAVA并發(fā)編程之美 版權(quán)信息
- ISBN:9787121349478
- 條形碼:9787121349478 ; 978-7-121-34947-8
- 裝幀:一般膠版紙
- 冊(cè)數(shù):暫無(wú)
- 重量:暫無(wú)
- 所屬分類:>>
JAVA并發(fā)編程之美 本書(shū)特色
Java并發(fā)編程無(wú)處不在,涉及的知識(shí)點(diǎn)多,要掌握并用好它并非易事。作者加多擁有在大型互聯(lián)網(wǎng)公司阿里巴巴的豐富工作經(jīng)驗(yàn),遇到并解決了業(yè)務(wù)場(chǎng)景中很多實(shí)際的并發(fā)問(wèn)題。本書(shū)是他對(duì)自己實(shí)踐經(jīng)驗(yàn)的總結(jié)與升華。為幫助讀者解決學(xué)習(xí)中的各類痛點(diǎn),作者將全書(shū)明確地分為基礎(chǔ)篇、高級(jí)篇和實(shí)踐篇,脈絡(luò)清晰;全書(shū)以代碼說(shuō)話,輔以圖表,讓初學(xué)者能一步一步地深入堂奧,掌握并發(fā)編程的精髓。 業(yè)內(nèi)眾技術(shù)大拿江南白衣、你假笨/寒泉子,純潔的微笑、許令波、方騰飛好評(píng)推薦!
JAVA并發(fā)編程之美 內(nèi)容簡(jiǎn)介
并發(fā)編程相比 Java 中其他知識(shí)點(diǎn)的學(xué)習(xí)門(mén)檻較高,從而導(dǎo)致很多人望而卻步。但無(wú)論是職場(chǎng)面試,還是高并發(fā)/ 高流量系統(tǒng)的實(shí)現(xiàn),卻都離不開(kāi)并發(fā)編程,于是能夠真正掌握并發(fā)編程的人成為了市場(chǎng)迫切需求的人才。本書(shū)通過(guò)圖文結(jié)合、通俗易懂的講解方式幫助大家完成多線程并發(fā)編程從入門(mén)到實(shí)踐的飛躍!全書(shū)分為三部分,靠前部分為Java 并發(fā)編程基礎(chǔ)篇,主要講解Java 并發(fā)編程的基礎(chǔ)知識(shí)、線程有關(guān)的知識(shí)和并發(fā)編程中的其他相關(guān)概念,這些知識(shí)在不錯(cuò)篇都會(huì)有所使用,掌握了本篇的內(nèi)容,就為學(xué)習(xí)不錯(cuò)篇奠定了基礎(chǔ);第二部分為Java 并發(fā)編程不錯(cuò)篇,講解了Java 并發(fā)包中核心組件的實(shí)現(xiàn)原理,讓讀者知其然,也知其所以然,熟練掌握本篇內(nèi)容,對(duì)我們?cè)谌粘i_(kāi)發(fā)高并發(fā)、高流量的系統(tǒng)時(shí)會(huì)大有裨益;第三部分為Java 并發(fā)編程實(shí)踐篇,主要講解并發(fā)組件的使用方法,以及在使用過(guò)程中容易遇到的問(wèn)題和解決方法。
JAVA并發(fā)編程之美 目錄
**部分 Java 并發(fā)編程基礎(chǔ)篇
第1 章 并發(fā)編程線程基礎(chǔ) 2
1.1 什么是線程 2
1.2 線程創(chuàng)建與運(yùn)行 3
1.3 線程通知與等待 6
1.4 等待線程執(zhí)行終止的join 方法 16
1.5 讓線程睡眠的sleep 方法 19
1.6 讓出CPU 執(zhí)行權(quán)的yield 方法 23
1.7 線程中斷 24
1.8 理解線程上下文切換 30
1.9 線程死鎖 30
1.9.1 什么是線程死鎖 30
1.9.2 如何避免線程死鎖 33
1.10 守護(hù)線程與用戶線程 35
1.11 ThreadLocal 39
1.11.1 ThreadLocal 使用示例 40
1.11.2 ThreadLocal 的實(shí)現(xiàn)原理 42
1.11.3 ThreadLocal 不支持繼承性 45
1.11.4 InheritableThreadLocal 類 46
第2 章 并發(fā)編程的其他基礎(chǔ)知識(shí) 50
2.1 什么是多線程并發(fā)編程 50
2.2 為什么要進(jìn)行多線程并發(fā)編程 51
2.3 Java 中的線程安全問(wèn)題 51
?2.4 Java 中共享變量的內(nèi)存可見(jiàn)性問(wèn)題 52
2.5 Java 中的synchronized 關(guān)鍵字 54
2.5.1 synchronized 關(guān)鍵字介紹 54
2.5.2 synchronized 的內(nèi)存語(yǔ)義 55
2.6 Java 中的volatile 關(guān)鍵字 55
2.7 Java 中的原子性操作 57
2.8 Java 中的CAS 操作 59
2.9 Unsafe 類 59
2.9.1 Unsafe 類中的重要方法 59
2.9.2 如何使用Unsafe 類 61
2.10 Java 指令重排序 65
2.11 偽共享 67
2.11.1 什么是偽共享 67
2.11.2 為何會(huì)出現(xiàn)偽共享 68
2.11.3 如何避免偽共享 70
2.11.4 小結(jié) 72
2.12 鎖的概述 72
2.12.1 樂(lè)觀鎖與悲觀鎖 72
2.12.2 公平鎖與非公平鎖 75
2.12.3 獨(dú)占鎖與共享鎖 75
2.12.4 什么是可重入鎖 76
2.12.5 自旋鎖 77
2.13 總結(jié) 77
第二部分 Java 并發(fā)編程高級(jí)篇
第3 章 Java 并發(fā)包中ThreadLocalRandom 類原理剖析 80
3.1 Random 類及其局限性 80
3.2 ThreadLocalRandom 82
3.3 源碼分析 84
3.4 總結(jié) 87
第4 章 Java 并發(fā)包中原子操作類原理剖析 88
4.1 原子變量操作類 88
4.2 JDK 8 新增的原子操作類LongAdder 93
4.2.1 LongAdder 簡(jiǎn)單介紹 93
4.2.2 LongAdder 代碼分析 95
4.2.3 小結(jié) 101
4.3 LongAccumulator 類原理探究 102
4.4 總結(jié) 104
第5 章 Java 并發(fā)包中并發(fā)List 源碼剖析 105
5.1 介紹 105
5.2 主要方法源碼解析 106
5.2.1 初始化 106
5.2.2 添加元素 106
5.2.3 獲取指定位置元素 108
5.2.4 修改指定元素 109
5.2.5 刪除元素 110
5.2.6 弱一致性的迭代器 111
5.3 總結(jié) 114
第6 章 Java 并發(fā)包中鎖原理剖析 115
6.1 LockSupport 工具類 115
6.2 抽象同步隊(duì)列AQS 概述 122
6.2.1 AQS——鎖的底層支持 122
6.2.2 AQS——條件變量的支持 128
6.2.3 基于AQS 實(shí)現(xiàn)自定義同步器 131
6.3 獨(dú)占鎖ReentrantLock 的原理 136
6.3.1 類圖結(jié)構(gòu) 136
6.3.2 獲取鎖 137
6.3.3 釋放鎖 142
6.3.4 案例介紹 143
6.3.5 小結(jié) 145
?6.4 讀寫(xiě)鎖ReentrantReadWriteLock 的原理 145
6.4.1 類圖結(jié)構(gòu) 145
6.4.2 寫(xiě)鎖的獲取與釋放 147
6.4.3 讀鎖的獲取與釋放 151
6.4.4 案例介紹 156
6.4.5 小結(jié) 158
6.5 JDK 8 中新增的StampedLock 鎖探究 158
6.5.1 概述 158
6.5.2 案例介紹 160
6.5.3 小結(jié) 164
第7 章 Java 并發(fā)包中并發(fā)隊(duì)列原理剖析 165
7.1 ConcurrentLinkedQueue 原理探究 165
7.1.1 類圖結(jié)構(gòu) 165
7.1.2 ConcurrentLinkedQueue 原理介紹 166
7.1.3 小結(jié) 181
7.2 LinkedBlockingQueue 原理探究 182
7.2.1 類圖結(jié)構(gòu) 182
7.2.2 LinkedBlockingQueue 原理介紹 185
7.2.3 小結(jié) 194
7.3 ArrayBlockingQueue 原理探究 195
7.3.1 類圖結(jié)構(gòu) 195
7.3.2 ArrayBlockingQueue 原理介紹 197
7.3.3 小結(jié) 202
7.4 PriorityBlockingQueue 原理探究 203
7.4.1 介紹 203
7.4.2 PriorityBlockingQueue 類圖結(jié)構(gòu) 203
7.4.3 原理介紹 205
7.4.4 案例介紹 214
7.4.5 小結(jié) 216
7.5 DelayQueue 原理探究 217
7.5.1 DelayQueue 類圖結(jié)構(gòu) 217
7.5.2 主要函數(shù)原理講解 219
7.5.3 案例介紹 222
7.5.4 小結(jié) 224
第8 章 Java 并發(fā)包中線程池ThreadPoolExecutor 原理探究 225
8.1 介紹 225
8.2 類圖介紹 225
8.3 源碼分析 230
8.3.1 public void execute(Runnable command) 230
8.3.2 工作線程Worker 的執(zhí)行 235
8.3.3 shutdown 操作 238
8.3.4 shutdownNow 操作 240
8.3.5 awaitTermination 操作 241
8.4 總結(jié) 242
第9 章 Java 并發(fā)包中ScheduledThreadPoolExecutor 原理探究 243
9.1 介紹 243
9.2 類圖介紹 243
9.3 原理剖析 245
9.3.1 schedule(Runnable command, long delay,TimeUnit unit) 方法 246
9.3.2 scheduleWithFixedDelay(Runnable command,long initialDelay, long delay,TimeUnit unit) 方法 252
9.3.3 scheduleAtFixedRate(Runnable command,long initialDelay,long period,TimeUnit unit) 方法 254
9.4 總結(jié) 255
第10 章 Java 并發(fā)包中線程同步器原理剖析 256
10.1 CountDownLatch 原理剖析 256
10.1.1 案例介紹 256
10.1.2 實(shí)現(xiàn)原理探究 259
10.1.3 小結(jié) 263
10.2 回環(huán)屏障CyclicBarrier 原理探究 264
10.2.1 案例介紹 264
10.2.2 實(shí)現(xiàn)原理探究 268
10.2.3 小結(jié) 272
?10.3 信號(hào)量Semaphore 原理探究 272
10.3.1 案例介紹 272
10.3.2 實(shí)現(xiàn)原理探究 276
10.3.3 小結(jié) 281
10.4 總結(jié) 281
第三部分 Java 并發(fā)編程實(shí)踐篇
第11 章 并發(fā)編程實(shí)踐 284
11.1 ArrayBlockingQueue 的使用 284
11.1.1 異步日志打印模型概述 284
11.1.2 異步日志與具體實(shí)現(xiàn) 285
11.1.3 小結(jié) 293
11.2 Tomcat 的NioEndPoint 中ConcurrentLinkedQueue 的使用 293
11.2.1 生產(chǎn)者——Acceptor 線程 294
11.2.2 消費(fèi)者——Poller 線程 298
11.2.3 小結(jié) 300
11.3 并發(fā)組件ConcurrentHashMap 使用注意事項(xiàng) 300
11.4 SimpleDateFormat 是線程不安全的 304
11.4.1 問(wèn)題復(fù)現(xiàn) 304
11.4.2 問(wèn)題分析 305
11.4.3 小結(jié) 309
11.5 使用Timer 時(shí)需要注意的事情 309
11.5.1 問(wèn)題的產(chǎn)生 309
11.5.2 Timer 實(shí)現(xiàn)原理分析 310
11.5.3 小結(jié) 313
11.6 對(duì)需要復(fù)用但是會(huì)被下游修改的參數(shù)要進(jìn)行深復(fù)制 314
11.6.1 問(wèn)題的產(chǎn)生 314
11.6.2 問(wèn)題分析 316
11.6.3 小結(jié) 318
11.7 創(chuàng)建線程和線程池時(shí)要指定與業(yè)務(wù)相關(guān)的名稱 319
11.7.1 創(chuàng)建線程需要有線程名 319
11.7.2 創(chuàng)建線程池時(shí)也需要指定線程池的名稱 321
11.7.3 小結(jié) 325
11.8 使用線程池的情況下當(dāng)程序結(jié)束時(shí)記得調(diào)用shutdown 關(guān)閉線程池 325
11.8.1 問(wèn)題復(fù)現(xiàn) 325
11.8.2 問(wèn)題分析 327
11.8.3 小結(jié) 329
11.9 線程池使用FutureTask 時(shí)需要注意的事情 329
11.9.1 問(wèn)題復(fù)現(xiàn) 329
11.9.2 問(wèn)題分析 332
11.9.3 小結(jié) 335
11.10 使用ThreadLocal 不當(dāng)可能會(huì)導(dǎo)致內(nèi)存泄漏 336
11.10.1 為何會(huì)出現(xiàn)內(nèi)存泄漏 336
11.10.2 在線程池中使用ThreadLocal 導(dǎo)致的內(nèi)存泄漏 339
11.10.3 在Tomcat 的Servlet 中使用ThreadLocal 導(dǎo)致內(nèi)存泄漏 341
11.10.4 小結(jié) 344
11.11 總結(jié) 344
JAVA并發(fā)編程之美 作者簡(jiǎn)介
翟陸續(xù),花名加多,四川大學(xué)計(jì)算機(jī)學(xué)院研究生畢業(yè)。目前任淘寶技術(shù)高級(jí)開(kāi)發(fā)工程師,熱衷于Java并發(fā)編程,對(duì)JUC包源碼有深入的研究,熟悉常用開(kāi)源框架實(shí)現(xiàn)原理。 薛賓田,四川大學(xué)計(jì)算機(jī)學(xué)院研究生畢業(yè),阿里巴巴原研發(fā)工程師,目前在河南牧業(yè)經(jīng)濟(jì)學(xué)院信息工程學(xué)院擔(dān)任Java課程老師。
- >
隨園食單
- >
唐代進(jìn)士錄
- >
月亮虎
- >
中國(guó)歷史的瞬間
- >
山海經(jīng)
- >
經(jīng)典常談
- >
伯納黛特,你要去哪(2021新版)
- >
姑媽的寶刀