第 1章 綫程管理 1
1.1 簡介 1
1.2 綫程的創建、運行和設置 2
1.3 綫程中斷 8
1.4 控製綫程中斷 11
1.5 綫程的休眠和喚醒 14
1.6 等待綫程執行結束 16
1.7 守護綫程的創建與運行 19
1.8 處理綫程中的不可控異常 23
1.9 使用綫程本地變量 26
1.10 綫程分組及綫程組中不可控異常的處理 29
1.11 使用工廠創建綫程 33
第 2章 綫程同步基礎 37
2.1 簡介 37
2.2 方法同步 38
2.3 在同步代碼塊中使用條件 46
2.4 在同步代碼塊中使用鎖機製 51
2.5 用讀/寫鎖保護同步代碼塊 57
2.6 在一個鎖中使用多個條件 62
2.7 高階知識:StampedLock的使用 70
第3章 綫程同步工具 78
3.1 簡介 78
3.2 控製對資源的一個或多個副本的並發訪問 79
3.3 等待多個並發事件 85
3.4 在指定狀態點同步任務 90
3.5 運行階段性並發任務 98
3.6 階段性並發任務中階段轉變的控製 108
3.7 兩個並發任務間的數據交換 114
3.8 異步地完成和關聯任務 118
第4章 綫程執行器 128
4.1 簡介 128
4.2 創建一個綫程執行器並實現其拒絕策略 129
4.3 在一個執行器裏執行任務並返迴結果 136
4.4 運行多個任務並處理第 一個返迴結果 140
4.5 運行多個任務並處理全部返迴結果 146
4.6 在執行器內延遲運行任務 150
4.7 在執行器內周期性地運行任務 154
4.8 在執行器內取消任務 157
4.9 在執行器內控製任務的完成 160
4.10 在執行器內分離任務的啓動並處理返迴結果 164
第5章 fork/join框架 171
5.1 簡介 171
5.2 創建一個fork/join池 173
5.3 閤並任務的執行結果 180
5.4 異步地運行任務 189
5.5 在任務中拋齣異常 196
5.6 取消一個任務 200
第6章 並行反應式流 208
6.1 簡介 208
6.2 使用不同的源創建流 210
6.3 歸約一個流的元素 217
6.4 收集流中的元素 224
6.5 把一個動作應用到流的每個元素上 231
6.6 過濾流中的元素 234
6.7 轉換流中的元素 237
6.8 排序流中的元素 241
6.9 在流中的元素上驗證條件 244
6.10 在反應式流上反應式編程 248
第7章 並發集閤 256
7.1 簡介 256
7.2 運用非阻塞綫程安全的雙端隊列 257
7.3 運用阻塞綫程安全的雙端隊列 262
7.4 運用按優先級排序的阻塞綫程安全隊列 265
7.5 運用帶延遲元素的綫程安全列錶 271
7.6 運用綫程安全的跳錶 276
7.7 運用綫程安全的HashMap 281
7.8 運用原子性變量 287
7.9 運用原子性數組 294
7.10 運用volatile關鍵字 298
7.11 運用變量句柄 302
第8章 自定義並發類 307
8.1 簡介 307
8.2 自定義ThreadPoolExecutor類 308
8.3 實現一個基於優先級的Executor類 313
8.4 實現ThreadFactory接口來生成自定義綫程 317
8.5 在一個Executor對象中使用ThreadFactory 322
8.6 自定義在一個周期調度性綫程池中運行的任務 324
8.7 實現一個ThreadFactory以生成fork/join框架的自定義綫程 331
8.8 自定義運行於fork/join框架中的任務 338
8.9 實現一個自定義Lock類 342
8.10 實現一個基於優先級的傳遞隊列 348
8.11 實現自己的原子性對象 359
8.12 實現自己的流生成器 363
8.13 實現自己的異步流 369
第9章 並發程序的測試 378
9.1 簡介 378
9.2 監測Lock接口 379
9.3 監測Phaser類 383
9.4 監測Executor框架 387
9.5 監測fork/join任務池 390
9.6 監測流 395
9.7 輸齣有效日誌信息 397
9.8 利用FindBugs分析並發程序代碼 402
9.9 使用Eclipse調試並發程序代碼 406
9.10 使用NetBeans調試並發程序代碼 408
9.11 使用MultithreadedTC調試並發程序代碼 413
9.12 使用JConsole監測 416
第 10章 附加信息 421
10.1 簡介 421
10.2 在Executor框架中處理Runnable對象的結果 421
10.3 在ForkJoinPool類中處理未控製的異常 427
10.4 使用綫程安全的阻塞隊列在生産者和消費者之間進行交互 431
10.5 監測Thread類 436
10.6 監測Semaphore類 440
10.7 生成並發隨機數 443
第 11章 並發編程設計 445
11.1 簡介 445
11.2 盡可能使用不可變對象 446
11.3 對鎖排序以避免死鎖 449
11.4 使用原子變量替代同步 451
11.5 盡可能短地持有鎖 455
11.6 委托執行器管理綫程 459
11.7 使用並發數據結構替代手動編程 462
11.8 使用延遲初始化預防問題 464
11.9 使用fork/join框架替代執行器 466
11.10 避免在鎖中使用阻塞操作 470
11.11 避免使用已棄用的方法 472
11.12 使用執行器替代綫程組 473
11.13 使用流處理大數據集 474
11.14 其他提示和技巧 479
· · · · · · (
收起)