並行編程

張楊

  • 出版商: 清華大學
  • 出版日期: 2023-05-01
  • 售價: $474
  • 貴賓價: 9.5$450
  • 語言: 簡體中文
  • 頁數: 317
  • 裝訂: 平裝
  • ISBN: 7302627851
  • ISBN-13: 9787302627852
  • 相關分類: Java 程式語言
  • 立即出貨 (庫存 < 4)

  • 並行編程-preview-1
  • 並行編程-preview-2
  • 並行編程-preview-3
並行編程-preview-1

買這商品的人也買了...

商品描述

本書對並行編程過程中的相關基本概念、原理、技術、方法進行詳細講解,以時下流行的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