作 者:(美)斯蒂芬·克利裡 著 韓峰 譯
定 價:79
出 版 社:人民郵電出版社
出版日期:2020年11月01日
頁 數:224
裝 幀:平裝
ISBN:9787115550606
如今的用戶對響應式界面的期望越來越高,開發人員不得不努力賦予應用程序越來越強的能力,並發編程兼顧了這兩大趨勢。對現代應用程序來說,並發編程迅速地成為了不可或缺的需求。然而,眾多開發人員依然認為並發編程富有挑戰。如果你曾在並發編程十分復雜的年代裡受挫,那麼本書能幫助你重拾勇氣。或許我們永遠無法將並發編程形容為“小菜一碟”,但借助現代程序庫以及.NET和C# 8.0的語言特性,你一定不會再如過去那般舉步維艱。你將通過本書掌握以下內容。- 面向異步編程的async和await- 利用異步流讓等
●第2版贊譽 ix
前言 xi
第1章 並發概覽 1
1.1 並發入門 1
1.2 異步編程 3
1.3 並行編程 7
1.4 響應式編程 10
1.5 數據流 12
1.6 多線程編程 14
1.7 並發應用程序集合 14
1.8 現代化設計 15
1.9 技術要點小結 15
第2章 異步編程基礎 16
2.1 暫停一段時間 16
2.2 返回已完成的任務 18
2.3 報告進度 20
2.4 等待一組任務完成 22
2.5 等待任意任務完成 24
2.6 在任務完成時處理它們 25
2.7 避免延續的上下文 28
2.8 async Task方法的異常處理 29
2.9 async void方法的異常處理 31
2.10 創建ValueTask 33
2.11 使用ValueTask 34
第3章 異步流 37
3.1 異步流和Task 37
3.2 異步流和IEnumerable 37
3.3 異步流和Task> 38
3.4 異步流和IObservable 38
3.5 創建異步流 40
3.6 消耗異步流 42
3.7 對異步流使用LINQ 44
3.8 異步流及其取消操作 46
第4章 並行編程基礎 49
4.1 並行處理 49
4.2 並行聚合 51
4.3 並行調用 52
4.4 動態並行 53
4.5 PLINQ 55
第5章 數據流基礎 57
5.1 關聯的塊 57
5.2 傳播錯誤 59
5.3 塊的解耦 60
5.4 塊的節流 61
5.5 塊的並行處理 62
5.6 創建自定義塊 63
第6章 System.Reactive 基礎 65
6.1 轉換.NET事件 65
6.2 向上下文發送通知 68
6.3 使用窗口和緩衝來分組事件數據 70
6.4 通過節流和采樣控制事件流 72
6.5 超時 74
第7章 測試 77
7.1 對async方法測試 78
7.2 對預期失敗的async方法測試 80
7.3 對async void方法測試 82
7.4 對數據流網格測試 83
7.5 對System.Reactive可觀察對像測試 84
7.6 通過偽造調度對System.Reactive可觀察對像測試 86
第8章 互操作 90
8.1 異步包裝“已完成”事件和異步方法 90
8.2 異步包裝Begin方法和End方法 92
8.3 異步包裝任意對像 93
8.4 異步包裝並行代碼 94
8.5 異步包裝System.Reactive可觀察對像 95
8.6 用於異步代碼的System.Reactive可觀察包裝器 96
8.7 異步流與數據流網格 98
8.8 System.Reactive可觀察對像和數據流網格 100
8.9 將System.Reactive可觀察對像轉換為異步流 101
第9章 集合 104
9.1 不可變的棧和隊列 105
9.2 不可變列表 108
9.3 不可變set 109
9.4 不可變字典 111
9.5 線程安全的字典 113
9.6 阻塞隊列 115
9.7 阻塞棧和阻塞背包 116
9.8 異步隊列 117
9.9 節流隊列 120
9.10 采樣隊列 122
9.11 異步棧和異步背包 124
9.12 阻塞異步隊列 125
第10章 取消 130
10.1 發起取消請求 131
10.2 通過輪詢來響應取消 133
10.3 因超時而取消 135
10.4 取消async代碼 136
10.5 取消並行代碼 137
10.6 取消System.Reactive代碼 138
10.7 取消數據流網格 140
10.8 注入取消請求 141
10.9 與其他取消繫統互操作 143
第11章 函數式面向對像編程 145
11.1 異步接口及繼承 145
11.2 異步構造:工廠 147
11.3 異步構造:異步初始化模式 149
11.4 異步屬性 152
11.5 異步事件 154
11.6 異步丟棄 156
第12章 同步 160
12.1 阻塞鎖 164
12.2 異步鎖 166
12.3 阻塞信號 168
12.4 異步信號 169
12.5 節流 170
第13章 調度 173
13.1 將工作調度到線程池 173
13.2 通過任務調度器執行代碼 174
13.3 調度並行代碼 177
13.4 使用調度器實現數據流同步 177
第14章 場景 179
14.1 初始化共享資源 179
14.2 System.Reactive延遲計算 182
14.3 異步數據綁定 183
14.4 隱式狀態 186
14.5 相同的同步代碼和異步代碼 188
14.6 通過數據流網格實現軌道式編程 190
14.7 節流進度更新 191
附錄A 舊版平臺支持 197
附錄B 識別和詮釋異步模式 201
關於作者 208
關於封面 208
本書全面講解C#並發編程技術,側重於.NET平臺上較新、較實用的方法。新版內容全面更新,涉及異步編程基礎、互操作、集合、常見場景及其處理技巧等,另外新增了關於異步流的章節。全書分為14章:第1章概覽幾種並發編程技術,包括異步編程、並行編程、響應式編程、數據流等;第2~6章對這些技術進行詳細介紹;第7~13章深入探討這些技術,內容包括測試技巧、互操作、取消、函數式面向對像編程、同步、調度等;第14章涉及並發編程中的一些常見場景,並配有對應的解決方案。全書共包含近90個配有源代碼的實例,可用於各種應用程序的開發。本書適合具有.NET基礎並希望學習現代並發編程方法的軟件開發人員閱讀。