-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
3/26 新書到! 3/19 新書到! 3/14 新書到! 12/12 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

Java并發編程的藝術

( 簡體 字)
作者:方騰飛 魏鵬 程曉明類別:1. -> 程式設計 -> JAVA -> Java
譯者:
出版社:機械工業出版社Java并發編程的藝術 3dWoo書號: 42025
詢問書籍請說出此書號!

缺書
NT售價: 295

出版日:7/24/2015
頁數:240
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787111508243
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

內容簡介:

第1章介紹Java并發編程的挑戰,會向讀者說明可能會遇到哪些問題,以及如何解決。第2章Java并發編程的底層實現原理,從CPU和JVM2個層面剖析。第3章詳細深入介紹了Java的內存模型。第4章從介紹多線程技術帶來的好處開始,講述了如何啟動和終止線程以及線程的狀態,詳細闡述了多線程之間進行通信的基本方式和等待/通知經典范式。第5章介紹Java并發包中與鎖相關的API和組件,以及這些API和組件的使用方式和實現細節。第6章介紹了Java中的大部分并發容器及其實現原理。第7章介紹了Java中的原子操作類,并給出一些實例。第8章介紹了Java中提供的很多并發工具類。第9章介紹了Java中的線程池實現原理和使用建議。第10章介紹了Executor框架的整體結構和成員組件。第11章介紹幾個并發編程的實戰與并發編程問題排查。


目錄:

第1章 并發編程的挑戰 1
1.1 上下文切換 1
1.1.1 多線程一定快嗎 1
1.1.2 測試上下文切換次數和時長 3
1.1.3 如何減少上下文切換 3
1.1.4 減少上下文切換實戰 4
1.2 死鎖 5
1.3 資源限制的挑戰 6
1.4 本章小結 7
第2章 Java并發機制的底層實現原理 8
2.1 volatile的應用 8
2.2 synchronized的實現原理與應用 11
2.2.1 Java對象頭 12
2.2.2 鎖的升級與對比 13
2.3 原子操作的實現原理 16
2.4 本章小結 20
第3章 Java內存模型 21
3.1 Java內存模型的基礎 21
3.1.1 并發編程模型的兩個關鍵問題 21
3.1.2 Java內存模型的抽象結構 22
3.1.3 從源代碼到指令序列的重排序 23
3.1.4 并發編程模型的分類 24
3.1.5 happens-before簡介 26
3.2 重排序 27
3.2.1 數據依賴性 28
3.2.2 as-if-serial語義 28
3.2.3 程序順序規則 29
3.2.4 重排序對多線程的影響 29
3.3 順序一致性 31
3.3.1 數據競爭與順序一致性 31
3.3.2 順序一致性內存模型 32
3.3.3 同步程序的順序一致性效果 34
3.3.4 未同步程序的執行特性 35
3.4 volatile的內存語義 38
3.4.1 volatile的特性 38
3.4.2 volatile寫-讀建立的happens-before關系 39
3.4.3 volatile寫-讀的內存語義 40
3.4.4 volatile內存語義的實現 42
3.4.5 JSR-133為什么要增強volatile的內存語義 46
3.5 鎖的內存語義 47
3.5.1 鎖的釋放-獲取建立的
   happens-before關系 47
3.5.2 鎖的釋放和獲取的內存語義 48
3.5.3 鎖內存語義的實現 50
3.5.4 concurrent包的實現 54
3.6 final域的內存語義 55
3.6.1 final域的重排序規則 55
3.6.2 寫final域的重排序規則 56
3.6.3 讀final域的重排序規則 57
3.6.4 final域為引用類型 58
3.6.5 為什么final引用不能從構造函數內“溢出” 59
3.6.6 final語義在處理器中的實現 61
3.6.7 JSR-133為什么要增強f?inal的語義 62
3.7 happens-before 62
3.7.1 JMM的設計 62
3.7.2 happens-before的定義 64
3.7.3 happens-before規則 65
3.8 雙重檢查鎖定與延遲初始化 67
3.8.1 雙重檢查鎖定的由來 67
3.8.2 問題的根源 69
3.8.3 基于volatile的解決方案 71
3.8.4 基于類初始化的解決方案 72
3.9 Java內存模型綜述 78
3.9.1 處理器的內存模型 78
3.9.2 各種內存模型之間的關系 80
3.9.3 JMM的內存可見性保證 80
3.9.4 JSR-133對舊內存模型的修補 81
3.10 本章小結 82
第4章 Java并發編程基礎 83
4.1 線程簡介 83
4.1.1 什么是線程 83
4.1.2 為什么要使用多線程 84
4.1.3 線程優先級 85
4.1.4 線程的狀態 87
4.1.5 Daemon線程 90
4.2 啟動和終止線程 91
4.2.1 構造線程 91
4.2.2 啟動線程 92
4.2.3 理解中斷 92
4.2.4 過期的suspend()、resume()和stop() 93
4.2.5 安全地終止線程 95
4.3 線程間通信 96
4.3.1 volatile和synchronized關鍵字 96
4.3.2 等待/通知機制 98
4.3.3 等待/通知的經典范式 101
4.3.4 管道輸入/輸出流 102
4.3.5 Thread.join()的使用 103
4.3.6 ThreadLocal的使用 105
4.4 線程應用實例 106
4.4.1 等待超時模式 106
4.4.2 一個簡單的數據庫連接池示例 106
4.4.3 線程池技術及其示例 110
4.4.4 一個基于線程池技術的簡單Web服務器 114
4.5 本章小結 118
第5章 Java中的鎖 119
5.1 Lock接口 119
5.2 隊列同步器 121
5.2.1 隊列同步器的接口與示例 121
5.2.2 隊列同步器的實現分析 124
5.3 重入鎖 136
5.4 讀寫鎖 140
5.4.1 讀寫鎖的接口與示例 141
5.4.2 讀寫鎖的實現分析 142
5.5 LockSupport工具 146
5.6 Condition接口 147
5.6.1 Condition接口與示例 148
5.6.2 Condition的實現分析 150
5.7 本章小結 154
第6章 Java并發容器和框架 155
6.1 ConcurrentHashMap的實現原理與使用 155
6.1.1 為什么要使用ConcurrentHashMap 155
6.1.2 ConcurrentHashMap的結構 156
6.1.3 ConcurrentHashMap的初始化 157
6.1.4 定位Segment 159
6.1.5 ConcurrentHashMap的操作 160
6.2 ConcurrentLinkedQueue 161
6.2.1 ConcurrentLinkedQueue的結構 162
6.2.2 入隊列 162
6.2.3 出隊列 165
6.3 Java中的阻塞隊列 167
6.3.1 什么是阻塞隊列 167
6.3.2 Java里的阻塞隊列 168
6.3.3 阻塞隊列的實現原理 172
6.4 Fork/Join框架 175
6.4.1 什么是Fork/Join框架 175
6.4.2 工作竊取算法 176
6.4.3 Fork/Join框架的設計 177
6.4.4 使用Fork/Join框架 177
6.4.5 Fork/Join框架的異常處理 179
6.4.6 Fork/Join框架的實現原理 179
6.5 本章小結 181
第7章 Java中的13個原子操作類 182
7.1 原子更新基本類型類 182
7.2 原子更新數組 184
7.3 原子更新引用類型 185
7.4 原子更新字段類 187
7.5 本章小結 188
第8章 Java中的并發工具類 189
8.1 等待多線程完成的CountDownLatch 189
8.2 同步屏障CyclicBarrier 191
8.2.1 CyclicBarrier簡介 191
8.2.2 CyclicBarrier的應用場景 193
8.2.3 CyclicBarrier和CountDownLatch的區別 195
8.3 控制并發線程數的Semaphore 196
8.4 線程間交換數據的Exchanger 198
8.5 本章小結 199
第9章 Java中的線程池 200
9.1 線程池的實現原理 200
9.2 線程池的使用 203
9.2.1 線程池的創建 203
9.2.2 向線程池提交任務 205
9.2.3 關閉線程池 205
9.2.4 合理地配置線程池 206
9.2.5 線程池的監控 206
9.3 本章小結 207
第10章 Executor框架 208
10.1 Executor框架簡介 208
10.1.1 Executor框架的兩級調度模型 208
10.1.2 Executor框架的結構與成員 208
10.2 ThreadPoolExecutor詳解 213
10.2.1 FixedThreadPool詳解 213
10.2.2 SingleThreadExecutor詳解 214
10.2.3 CachedThreadPool詳解 215
10.3 ScheduledThreadPoolExecutor詳解 217
10.3.1 ScheduledThreadPoolExecutor的運行機制 217
10.3.2 ScheduledThreadPoolExecutor的實現 218
10.4 FutureTask詳解 221
10.4.1 FutureTask簡介 222
10.4.2 FutureTask的使用 222
10.4.3 FutureTask的實現 224
10.5 本章小結 227
第11章 Java并發編程實踐 228
11.1 生產者和消費者模式 228
11.1.1 生產者消費者模式實戰 229
11.1.2 多生產者和多消費者場景 231
11.1.3 線程池與生產消費者模式 234
11.2 線上問題定位 234
11.3 性能測試 236
11.4 異步任務池 238
11.5 本章小結 240
序: