並行編程
張楊
買這商品的人也買了...
-
$2,380$2,261 -
$520$411 -
$3,490$3,316 -
$534$507 -
$811統計學習要素:機器學習中的數據挖掘、推斷與預測, 2/e (The Elements of Statistical Learning: Data Mining, Inference, and Prediction, 2/e)
-
$1,674$1,590 -
$1,080$820 -
$600$468 -
$505Android 系統性能優化:卡頓、穩定性與續航
-
$419$398 -
$980$931 -
$1,860$1,823 -
$774$735
相關主題
商品描述
本書對並行編程過程中的相關基本概念、原理、技術、方法進行詳細講解,以時下流行的Java語言為基礎,主要針對基於共享內存的並行編程方法,內容涉及並行編程基本概念、線程創建和管理、同步和異步編程、線程協作、自定義並發類等內容。本書在講解相關原理和技術的同時,使用大量實例進行演示,力求做到知識點明白透徹。 本書內容先進、結構合理、講解詳盡、例題豐富,適合作為高等院校本科生和研究生的教材,是高等院校師生和IT領域在職人員學習並行編程技術的理想教材和工具書,也可作為高性能計算技術人員的自修參考用書。
目錄大綱
目錄
第1章緒論1
1.1概述1
1.2並發與並行2
1.2.1並發2
1.2.2並行3
1.3Flynn分類4
1.4並行編程模型4
1.4.1多線程並行模型4
1.4.2共享內存並行模型5
1.4.3分佈式並行模型6
1.4.4混合並行編程模型7
1.4.5數據並行模型7
1.5並行程序設計方法8
1.5.1分治8
1.5.2流水線9
1.5.3消息傳遞10
1.6加速比10
1.6.1阿姆達爾定律10
1.6.2高斯特凡定律11
1.7並行程序評判標準11
1.8Java並行13
1.8.1並行特性13
1.8.2內存模型14
1.9程序運行說明15
習題17
第2章線程18
2.1基本概念18
2.1.1進程與線程18
2.1.2超線程18
2.2線程的創建19
2.2.1不帶返回值的線程——從Thread類繼承19
2.2.2不帶返回值的線程——實現Runnable接口22
2.2.3帶返回值的線程——實現Callable接口24
2.2.4簡化線程創建代碼25
2.3線程的屬性28
2.3.1線程標識符28
2.3.2線程名30
2.3.3線程狀態34
2.3.4優先級37
習題41
並行編程目錄第3章線程的管理42
3.1線程數目的確定42
3.2線程運行的控制43
3.2.1等待線程執行完畢43
3.2.2休眠47
3.2.3中斷48
3.2.4讓出CPU的使用權50
3.3守護線程52
3.4線程分組55
3.5線程本地化58
3.6線程開銷問題60
習題62
第4章鎖63
4.1概述63
4.2基本概念63
4.2.1數據競爭63
4.2.2線程安全64
4.2.3臨界區65
4.2.4監視器65
4.3為什麽使用同步控制66
4.4同步鎖68
4.4.1同步方法68
4.4.2同步塊70
4.5可重入鎖72
4.6讀寫鎖80
4.7郵戳鎖87
4.8鎖的缺點94
4.8.1鎖競爭94
4.8.2優先權反轉95
4.8.3死鎖95
4.8.4活鎖98
4.9本章小結100
習題101
第5章原子操作102
5.1原子性102
5.2基本類型的原子操作103
5.3引用類型的原子操作106
5.4ABA問題108
5.5擴展的原子引用類型111
5.5.1類AtomicMarkableReference111
5.5.2類AtomicStampedReference114
5.6原子操作數組類117
5.7volatile關鍵字122
5.7.1可見性122
5.7.2原子性122
5.7.3指令重排122
5.8本章小結123
習題124
第6章異步模式125
6.1基本概念125
6.1.1同步和異步125
6.1.2阻塞和非阻塞125
6.1.3回調126
6.1.4I/O密集型任務和計算密集型任務126
6.2接口Future126
6.3類FutureTask127
6.4類CompletableFuture133
6.4.1類的定義133
6.4.2創建對象133
6.4.3獲取返回值134
6.4.4執行模型135
6.4.5多個異步任務處理144
6.4.6使用回調函數147
6.4.7綜合應用實例152
6.5本章小結155
習題156
第7章線程協作157
7.1通過共享變量進行協作157
7.2等待集合160
7.3等待與通知160
7.4條件變量168
7.5交換器174
習題178
第8章線程障柵179
8.1概述179
8.2循環障柵179
8.3倒計時門閂184
8.4信號量188
8.5階段193
習題201
第9章線程池管理202
9.1線程池202
9.1.1為什麽使用線程池202
9.1.2相關接口和類202
9.1.3應用舉例207
9.2固定數目的線程池209
9.3延遲執行、周期性執行的執行器214
9.4取消任務的執行219
9.5任務裝載和結果處理的分離220
9.6管理被拒絕的任務223
習題225
第10章並行模式Fork/Join226
10.1基本概念226
10.1.1任務劃分226
10.1.2負載均衡227
10.1.3工作竊取227
10.2Fork/Join框架的編程模式228
10.3線程池ForkJoinPool229
10.3.1創建ForkJoinPool對象229
10.3.2使用ForkJoinPool230
10.4任務ForkJoinTask231
10.4.1從類RecursiveAction繼承創建任務232
10.4.2從類RecursiveTask繼承創建任務238
10.4.3任務的運行方式242
10.4.4任務的取消245
10.5本章小結247
習題248
第11章線程安全的集合249
11.1線程安全的哈希表249
11.1.1類ConcurrentHashMap249
11.1.2類HashTable252
11.1.3方法Collections.synchronizedMap253
11.2線程安全的雙端隊列253
11.3線程安全的跳錶257
11.4同步隊列259
11.5隨機數產生262
11.6並行流264
11.6.1函數式接口Predicate264
11.6.2流的創建265
11.6.3流的操作266
習題268
第12章定製並行類269
12.1定製同步類269
12.1.1定製鎖269
12.1.2定製原子操作272
12.2定製線程工廠275
12.3定製線程池277
12.4定製線程執行器279
12.5定製周期性任務281
12.6定製與Fork/Join框架相關的並發類285
12.6.1類ForkJoinWorkerThread285
12.6.2接口ForkJoinPool.ForkJoinWorkerThreadFactory285
12.6.3自定義Fork/Join框架中的線程285
12.6.4自定義任務288
習題291
第13章並行程序設計實例292
13.1桶排序及其並行化292
13.1.1桶排序過程292
13.1.2並行化292
13.2奇偶排序及其並行化297
13.2.1奇偶排序算法的過程297
13.2.2並行化300
13.3加密/解密算法及其並行化306
13.3.1加密/解密過程及相關代碼306
13.3.2並行化314