Java多執行緒編程實戰指南:設計模式篇(第2版)

Java多執行緒編程實戰指南:設計模式篇(第2版)

本書從理論到實戰,用生活化的實例和通俗易懂的語言全面介紹Java多執行緒編程的“三十六計”多執行緒設計模式

基本介紹

  • 書名:Java多執行緒編程實戰指南:設計模式篇(第2版)
  • 作者:黃文海
  • 類別:計算機
  • 出版社:電子工業出版社
  • 出版時間:2020年3月
  • 頁數:296 頁
  • 定價:69 元
  • 開本:16 開
  • ISBN:9787121382451
內容簡介,圖書目錄,作者簡介,

內容簡介

《Java多執行緒編程實戰指南:設計模式篇(第2版)》採用Java 語言和UML 為描述語言,並結合作者多年工作經歷及相關實踐經驗,介紹了多執行緒環境下常用設計模式的來龍去脈:各個設計模式是什麼樣的、閥謎典型的實際套用場景、實際套用時需要 注意的事項及各個設計模式的可復用實現腿諒罪挨代碼。
第2 版除更正了第1 版中的錯誤外,還新增了JDK 8、JDK 9 中與多執行緒設計模式相關的內容, 並對代碼進行了重構和重新排版,使代碼部分重點更突出、更易於閱讀,以及提高了插圖的清晰度。

圖書目錄

第1章  Java多執行緒編程實戰基礎  1
1.1  無處不在的執行緒  1
1.2  執行緒的創建與運行  3
1.3  執行緒的狀態與上下文切換  5
1.4  對執行緒的監視  8
1.5  原子性、記憶體可見性和重排序——重新認識synchronized
和volatile  11
1.6  多執行緒編程的優勢和風險  13
1.7  多執行緒編程常用術語  14
第2章  設計模式簡介  19
2.1  設計模式及其作用  19
2.2  多執行緒驗櫃埋設計模式簡介  22
2.3  設計模式的描述  23
第3章  Immutable Object(不可變對象)模式  25
3.1  Immutable Object模式簡介  25
3.2  Immutable Object模式的架構  27
3.3  Immutable Object模式實戰案例解析  29
3.4  Immutable Object模式的評價與實現考量  33
3.4.1  適用場景  33
3.4.2  對垃圾回收(Garbage Collection)的影響  34
3.4.3  使用等效或者近似的不可變對象  35
3.4.4  防禦性複製  35
3.5  Immutable Object模式的可復用實現代碼  35
3.6  Java標準庫實例  35
3.7  相關模式  37
3.7.1  Thread Specific Storage模式(第10章)  37
3.7.2  Serial Thread Confinement模式(第11章)  37
3.8  參考資源  38
第4章  Guarded Suspension(保護性暫掛)模式  39
4.1  Guarded Suspension模式簡介  39
4.2  Guarded Suspension模式的架構  39
4.3  Guarded Suspension模式實戰案例解析  43
4.4  Guarded Suspension模式的評價與實現考量  50
4.4.1  記憶體可見性和鎖泄漏(Lock Leak)  51
4.4.2  執行緒被過早地喚醒  52
4.4.3  嵌套監視器鎖死  53
4.5  Guarded Suspension模式的可復用實現代碼  56
4.6  Java標準庫實例  56
4.7  相關模式  56
4.7.1  Promise模式(第6章)  57
4.7.2  Producer-Consumer模式(第7章)  57
4.8  參考資源  57
第5章  Two-phase Termination(兩階段終止)模式  58
5.1  Two-phase Termination模式簡介  58
5.2  Two-phase Termination模式的架構  59
5.3  Two-phase Termination模式實戰案例解析  61
5.4  Two-phase Termination模式的評價與實現考量  70
5.4.1  執行緒停止標誌  71
5.4.2  生歸刪阿員產者/消費者問題中的執行緒停止  71
5.4.3  隱藏而非暴露可停止執行緒  73
5.5  Two-phase Termination模式的可復用實現代碼  73
5.6  Java標準庫實例  73
5.7  相關模式  74
5.7.1  Producer-Consumer模式(第7章)  74
5.7.2  Master-Slave模式(第12章)  74
5.8  參考資源  74
第6章  Promise(承諾)模漏幾殼式  75
6.1  Promise模式簡介  75
6.2  Promise模式的架整白嚷構  75
6.3  Promise模式實戰案例解析  78
6.4  Promise模式的評價與實現考量  81
6.4.1  異步方法的異常處理  82
6.4.2  輪墓獄立詢  82
6.4.3  異步任務的執行  83
6.5  Promise模式的可復用實現代碼  84
6.6  Java標準庫實例  85
6.7  相關模式  85
6.7.1  Guarded Suspension模式(第4章)  85
6.7.2  Active Object模式(第8章)  86
6.7.3  Master-Slave模式(第12章)  86
6.7.4  Factory Method(工廠方法)模式  86
6.8  參考資源  86
第7章  Producer-Consumer(生產者/消費者)模式  87
7.1  Producer-Consumer模式簡介  87
7.2  Producer-Consumer模式的架構  87
7.3  Producer-Consumer模式實戰案例解析  90
7.4  Producer-Consumer模式的評價與實現考量  93
7.4.1  產品的粒度  94
7.4.2  通道積壓  94
7.4.3  非阻塞式反壓與Reactive Streams規範  96
7.4.4  工作竊取算法  97
7.4.5  執行緒的停止  101
7.4.6  高性能、高可靠性的Producer-Consumer模式實現  101
7.5  Producer-Consumer模式的可復用實現代碼  102
7.6  Java標準庫實例  102
7.7  相關模式  102
7.7.1  Guarded Suspension模式(第4章)  102
7.7.2  Thread Pool模式(第9章)  103
7.8  參考資源  103
第8章  Active Object(主動對象)模式  104
8.1  Active Object模式簡介  104
8.2  Active Object模式的架構  105
8.3  Active Object模式實戰案例解析  108
8.4  Active Object模式的評價與實現考量  115
8.4.1  錯誤隔離  117
8.4.2  緩衝區監控  118
8.4.3  緩衝區飽和處理策略  118
8.4.4  Scheduler空閒工作者執行緒清理  119
8.5  Active Object模式的可復用實現代碼  119
8.6  Java標準庫實例  123
8.7  相關模式  123
8.7.1  Promise模式(第6章)  123
8.7.2  Producer-Consumer模式(第7章)  123
8.8  參考資源  124
第9章  Thread Pool(執行緒池)模式  125
9.1  Thread Pool模式簡介  125
9.2  Thread Pool模式的架構  126
9.3  Thread Pool模式實戰案例解析  128
9.4  Thread Pool模式的評價與實現考量  130
9.4.1  工作佇列的選擇  131
9.4.2  執行緒池大小調校  132
9.4.3  執行緒池監控  134
9.4.4  執行緒泄漏  135
9.4.5  可靠性與執行緒池飽和處理策略  135
9.4.6  死鎖  138
9.4.7  執行緒池空閒執行緒清理  139
9.5  Thread Pool模式的可復用實現代碼  140
9.6  Java標準庫實例  140
9.7  相關模式  140
9.7.1  Two-phase Termination模式(第5章)  140
9.7.2  Promise模式(第6章)  141
9.7.3  Producer-Consumer模式(第7章)  141
9.8  參考資源  141
第10章  Thread Specific Storage(執行緒特有存儲)模式  142
10.1  Thread Specific Storage模式簡介  142
10.2  Thread Specific Storage模式的架構  144
10.3  Thread Specific Storage模式實戰案例解析  146
10.4  Thread Specific Storage模式的評價與實現考量  149
10.4.1  線上程池環境下使用Thread Specific Storage模式  153
10.4.2  記憶體泄漏與偽記憶體泄漏  153
10.5  Thread Specific Storage模式的可復用實現代碼  161
10.6  Java標準庫實例  161
10.7  相關模式  162
10.7.1  Immutable Object模式(第3章)  162
10.7.2  Proxy(代理)模式  162
10.7.3  Singleton(單例)模式  162
10.8  參考資源  162
第11章  Serial Thread Confinement(串列執行緒封閉)模式  163
11.1  Serial Thread Confinement模式簡介  163
11.2  Serial Thread Confinement模式的架構  163
11.3  Serial Thread Confinement模式實戰案例解析  166
11.4  Serial Thread Confinement模式的評價與實現考量  170
11.5  Serial Thread Confinement模式的可復用實現代碼  171
11.6  Java標準庫實例  176
11.7  相關模式  177
11.7.1  Immutable Object模式(第3章)  177
11.7.2  Promise模式(第6章)  177
11.7.3  Producer-Consumer模式(第7章)  177
11.7.4  Thread Specific Storage模式(第10章)  177
11.8  參考資源  177
第12章  Master-Slave(主僕)模式  178
12.1  Master-Slave模式簡介  178
12.2  Master-Slave模式的架構  178
12.3  Master-Slave模式實戰案例解析  180
12.4  Master-Slave模式的評價與實現考量  187
12.4.1  子任務處理結果的收集  188
12.4.2  Slave參與者實例的負載均衡與工作竊取  189
12.4.3  可靠性與異常處理  190
12.4.4  Slave執行緒的停止  190
12.5  Master-Slave模式的可復用實現代碼  190
12.6  Java標準庫實例  204
12.7  相關模式  204
12.7.1  Two-phase Termination模式(第5章)  204
12.7.2  Promise模式(第6章)  204
12.7.3  Strategy(策略)模式  204
12.7.4  Template(模板)模式  205
12.7.5  Factory Method(工廠方法)模式  205
12.8  參考資源  205
第13章  Pipeline(流水線)模式  206
13.1  Pipeline模式簡介  206
13.2  Pipeline模式的架構  207
13.3  Pipeline模式實戰案例解析  212
13.4  Pipeline模式的評價與實現考量  219
13.4.1  Pipeline的深度  220
13.4.2  基於執行緒池的Pipe  220
13.4.3  錯誤處理  223
13.4.4  可配置的Pipeline  224
13.5  Pipeline模式的可復用實現代碼  224
13.6  Java標準庫實例  236
13.7  相關模式  236
13.7.1  Serial Thread Confinement模式(第11章)  236
13.7.2  Master-Slave模式(第12章)  237
13.7.3  Composite模式  237
13.8  參考資源  237
第14章  Half-sync/Half-async(半同步/半異步)模式  238
14.1  Half-sync/Half-async模式簡介  238
14.2  Half-sync/Half-async模式的架構  238
14.3  Half-sync/Half-async模式實戰案例解析  240
14.4  Half-sync/Half-async模式的評價與實現考量  249
14.4.1  佇列積壓  250
14.4.2  避免同步任務層處理過慢  251
14.5  Half-sync/Half-async模式的可復用實現代碼  251
14.6  Java標準庫實例  256
14.7  相關模式  256
14.7.1  Two-phase Termination模式(第5章)  256
14.7.2  Producer-Consumer模式(第7章)  256
14.7.3  Active Object模式(第8章)  256
14.7.4  Thread Pool模式(第9章)  257
14.8  參考資源  257
第15章  模式語言  258
15.1  設計模式之間的聯繫  258
15.2  Immutable Object模式  260
15.3  Guarded Suspension模式  261
15.4  Two-phase Termination模式  262
15.5  Promise模式  263
15.6  Producer-Consumer模式  264
15.7  Active Object模式  265
15.8  Thread Pool模式  266
15.9  Thread Specific Storage模式  267
15.10  Serial Thread Confinement模式  268
15.11  Master-Slave模式  269
15.12  Pipeline模式  270
15.13  Half-sync/Half-async模式  271
附錄A  本書常用UML圖指南  272
參考文獻  281

作者簡介

黃文海,2004年開始從事軟體開發工作,從事軟體項目管理工作。在其工作過程中積累了豐富的技術指導經驗和企業內部培訓經驗。曾在InfoQ中文站和IBM developerWorks上發表過十幾篇技術、項目管理文章。
4.5  Guarded Suspension模式的可復用實現代碼  56
4.6  Java標準庫實例  56
4.7  相關模式  56
4.7.1  Promise模式(第6章)  57
4.7.2  Producer-Consumer模式(第7章)  57
4.8  參考資源  57
第5章  Two-phase Termination(兩階段終止)模式  58
5.1  Two-phase Termination模式簡介  58
5.2  Two-phase Termination模式的架構  59
5.3  Two-phase Termination模式實戰案例解析  61
5.4  Two-phase Termination模式的評價與實現考量  70
5.4.1  執行緒停止標誌  71
5.4.2  生產者/消費者問題中的執行緒停止  71
5.4.3  隱藏而非暴露可停止執行緒  73
5.5  Two-phase Termination模式的可復用實現代碼  73
5.6  Java標準庫實例  73
5.7  相關模式  74
5.7.1  Producer-Consumer模式(第7章)  74
5.7.2  Master-Slave模式(第12章)  74
5.8  參考資源  74
第6章  Promise(承諾)模式  75
6.1  Promise模式簡介  75
6.2  Promise模式的架構  75
6.3  Promise模式實戰案例解析  78
6.4  Promise模式的評價與實現考量  81
6.4.1  異步方法的異常處理  82
6.4.2  輪詢  82
6.4.3  異步任務的執行  83
6.5  Promise模式的可復用實現代碼  84
6.6  Java標準庫實例  85
6.7  相關模式  85
6.7.1  Guarded Suspension模式(第4章)  85
6.7.2  Active Object模式(第8章)  86
6.7.3  Master-Slave模式(第12章)  86
6.7.4  Factory Method(工廠方法)模式  86
6.8  參考資源  86
第7章  Producer-Consumer(生產者/消費者)模式  87
7.1  Producer-Consumer模式簡介  87
7.2  Producer-Consumer模式的架構  87
7.3  Producer-Consumer模式實戰案例解析  90
7.4  Producer-Consumer模式的評價與實現考量  93
7.4.1  產品的粒度  94
7.4.2  通道積壓  94
7.4.3  非阻塞式反壓與Reactive Streams規範  96
7.4.4  工作竊取算法  97
7.4.5  執行緒的停止  101
7.4.6  高性能、高可靠性的Producer-Consumer模式實現  101
7.5  Producer-Consumer模式的可復用實現代碼  102
7.6  Java標準庫實例  102
7.7  相關模式  102
7.7.1  Guarded Suspension模式(第4章)  102
7.7.2  Thread Pool模式(第9章)  103
7.8  參考資源  103
第8章  Active Object(主動對象)模式  104
8.1  Active Object模式簡介  104
8.2  Active Object模式的架構  105
8.3  Active Object模式實戰案例解析  108
8.4  Active Object模式的評價與實現考量  115
8.4.1  錯誤隔離  117
8.4.2  緩衝區監控  118
8.4.3  緩衝區飽和處理策略  118
8.4.4  Scheduler空閒工作者執行緒清理  119
8.5  Active Object模式的可復用實現代碼  119
8.6  Java標準庫實例  123
8.7  相關模式  123
8.7.1  Promise模式(第6章)  123
8.7.2  Producer-Consumer模式(第7章)  123
8.8  參考資源  124
第9章  Thread Pool(執行緒池)模式  125
9.1  Thread Pool模式簡介  125
9.2  Thread Pool模式的架構  126
9.3  Thread Pool模式實戰案例解析  128
9.4  Thread Pool模式的評價與實現考量  130
9.4.1  工作佇列的選擇  131
9.4.2  執行緒池大小調校  132
9.4.3  執行緒池監控  134
9.4.4  執行緒泄漏  135
9.4.5  可靠性與執行緒池飽和處理策略  135
9.4.6  死鎖  138
9.4.7  執行緒池空閒執行緒清理  139
9.5  Thread Pool模式的可復用實現代碼  140
9.6  Java標準庫實例  140
9.7  相關模式  140
9.7.1  Two-phase Termination模式(第5章)  140
9.7.2  Promise模式(第6章)  141
9.7.3  Producer-Consumer模式(第7章)  141
9.8  參考資源  141
第10章  Thread Specific Storage(執行緒特有存儲)模式  142
10.1  Thread Specific Storage模式簡介  142
10.2  Thread Specific Storage模式的架構  144
10.3  Thread Specific Storage模式實戰案例解析  146
10.4  Thread Specific Storage模式的評價與實現考量  149
10.4.1  線上程池環境下使用Thread Specific Storage模式  153
10.4.2  記憶體泄漏與偽記憶體泄漏  153
10.5  Thread Specific Storage模式的可復用實現代碼  161
10.6  Java標準庫實例  161
10.7  相關模式  162
10.7.1  Immutable Object模式(第3章)  162
10.7.2  Proxy(代理)模式  162
10.7.3  Singleton(單例)模式  162
10.8  參考資源  162
第11章  Serial Thread Confinement(串列執行緒封閉)模式  163
11.1  Serial Thread Confinement模式簡介  163
11.2  Serial Thread Confinement模式的架構  163
11.3  Serial Thread Confinement模式實戰案例解析  166
11.4  Serial Thread Confinement模式的評價與實現考量  170
11.5  Serial Thread Confinement模式的可復用實現代碼  171
11.6  Java標準庫實例  176
11.7  相關模式  177
11.7.1  Immutable Object模式(第3章)  177
11.7.2  Promise模式(第6章)  177
11.7.3  Producer-Consumer模式(第7章)  177
11.7.4  Thread Specific Storage模式(第10章)  177
11.8  參考資源  177
第12章  Master-Slave(主僕)模式  178
12.1  Master-Slave模式簡介  178
12.2  Master-Slave模式的架構  178
12.3  Master-Slave模式實戰案例解析  180
12.4  Master-Slave模式的評價與實現考量  187
12.4.1  子任務處理結果的收集  188
12.4.2  Slave參與者實例的負載均衡與工作竊取  189
12.4.3  可靠性與異常處理  190
12.4.4  Slave執行緒的停止  190
12.5  Master-Slave模式的可復用實現代碼  190
12.6  Java標準庫實例  204
12.7  相關模式  204
12.7.1  Two-phase Termination模式(第5章)  204
12.7.2  Promise模式(第6章)  204
12.7.3  Strategy(策略)模式  204
12.7.4  Template(模板)模式  205
12.7.5  Factory Method(工廠方法)模式  205
12.8  參考資源  205
第13章  Pipeline(流水線)模式  206
13.1  Pipeline模式簡介  206
13.2  Pipeline模式的架構  207
13.3  Pipeline模式實戰案例解析  212
13.4  Pipeline模式的評價與實現考量  219
13.4.1  Pipeline的深度  220
13.4.2  基於執行緒池的Pipe  220
13.4.3  錯誤處理  223
13.4.4  可配置的Pipeline  224
13.5  Pipeline模式的可復用實現代碼  224
13.6  Java標準庫實例  236
13.7  相關模式  236
13.7.1  Serial Thread Confinement模式(第11章)  236
13.7.2  Master-Slave模式(第12章)  237
13.7.3  Composite模式  237
13.8  參考資源  237
第14章  Half-sync/Half-async(半同步/半異步)模式  238
14.1  Half-sync/Half-async模式簡介  238
14.2  Half-sync/Half-async模式的架構  238
14.3  Half-sync/Half-async模式實戰案例解析  240
14.4  Half-sync/Half-async模式的評價與實現考量  249
14.4.1  佇列積壓  250
14.4.2  避免同步任務層處理過慢  251
14.5  Half-sync/Half-async模式的可復用實現代碼  251
14.6  Java標準庫實例  256
14.7  相關模式  256
14.7.1  Two-phase Termination模式(第5章)  256
14.7.2  Producer-Consumer模式(第7章)  256
14.7.3  Active Object模式(第8章)  256
14.7.4  Thread Pool模式(第9章)  257
14.8  參考資源  257
第15章  模式語言  258
15.1  設計模式之間的聯繫  258
15.2  Immutable Object模式  260
15.3  Guarded Suspension模式  261
15.4  Two-phase Termination模式  262
15.5  Promise模式  263
15.6  Producer-Consumer模式  264
15.7  Active Object模式  265
15.8  Thread Pool模式  266
15.9  Thread Specific Storage模式  267
15.10  Serial Thread Confinement模式  268
15.11  Master-Slave模式  269
15.12  Pipeline模式  270
15.13  Half-sync/Half-async模式  271
附錄A  本書常用UML圖指南  272
參考文獻  281

作者簡介

黃文海,2004年開始從事軟體開發工作,從事軟體項目管理工作。在其工作過程中積累了豐富的技術指導經驗和企業內部培訓經驗。曾在InfoQ中文站和IBM developerWorks上發表過十幾篇技術、項目管理文章。

相關詞條

熱門詞條

聯絡我們