作 者:(瑞士)亞歷山大·普羅科佩茨 著 王文濤 譯
定 價:99.9
出 版 社:人民郵電出版社
出版日期:2021年05月01日
頁 數:348
裝 幀:平裝
ISBN:9787115558343
1.本書由Scala發明人親傳弟子執筆完成,頗具權威性。2.通過大量的實際案例,兼顧理論與實踐,帶領讀者熟悉並發領域的很好技術。3.提供代碼下載,且代碼可重用。 Scala是一種現代的多範式編程語言,旨在以簡潔、優雅和安全的方式表達常見的編程模式。Scala流暢地集成了面向對像語言和函數式語言的特性。在本書中,您會看到Scala 2.12平臺的更新內容(Scala 2.12繫列針對Java 8執行程序)。本書首先向您介紹JVM並發編程的基礎,概述了Java內存模型的基本知識,然後展示了等
●第1章 概述 1
1.1並發編程2
1.1.1傳統並發計算概述2
1.1.2現代並發編程範式3
1.2Scala的優勢4
1.3準備工作5
1.3.1執行一個Scala程序5
1.3.2初識Scala6
1.4小結10
1.5練習11
第2章 JVM和JMM上的並發性13
2.1進程和線程14
2.1.1線程的創建和啟動16
2.1.2原子執行20
2.1.3重排序24
2.2監控器和同步26
2.2.1死鎖28
2.2.2保護塊30
2.2.3線程中斷和平滑關閉34
2.3易失變量35
2.4JMM37
2.5小結40
2.6練習41
第3章並發編程的傳統構造模塊45
3.1Executor和ExecutionContext對像46
3.2原子性原語49
3.2.1原子性變量49
3.2.2無鎖編程52
3.2.3鎖的實現54
3.2.4ABA問題56
3.3懶值58
3.4並發容器62
3.4.1並發隊列64
3.4.2並發集合和映射66
3.4.3並發遍歷71
3.5定制的並發數據結構73
3.5.1實現一個無鎖的並發池74
3.5.2進程的創建和處理78
3.6小結79
3.7練習80
第4章基於Future和Promise的異步編程82
4.1Future83
4.1.1啟動Future計算84
4.1.2Future回調86
4.1.3Future和異常88
4.1.4使用Try類型89
4.1.5致命異常90
4.1.6Future上的函數式組合91
4.2Promise98
4.2.1包裝基於回調的API100
4.2.2擴展Future API102
4.2.3異步計算的取消103
4.3Future和阻塞106
4.3.1等待Future完成106
4.3.2在異步計算內部阻塞107
4.4Scala的Async庫108
4.5其他Future框架110
4.6小結112
4.7練習112
第5章數據並行容器116
5.1Scala容器概述117
5.2使用並行容器117
5.2.1並行容器的類繼承譜繫121
5.2.2配置並行層次122
5.2.3測量JVM上的性能123
5.3並行容器的缺點125
5.3.1不可並行容器125
5.3.2不可並行操作126
5.3.3並行操作中的副作用128
5.3.4非確定性的並行操作129
5.3.5可交換和可結合的操作131
5.4將並行容器和並發容器結合起來132
5.5實現定制的並行容器134
5.5.1分裂器135
5.5.2組合器138
5.6小結141
5.7練習142
第6章基於響應式擴展的並發編程143
6.1創建Observable對像144
6.1.1Observable對像和異常146
6.1.2Observable規約147
6.1.3定制Observable對像149
6.1.4由Future對像創建Observable對像150
6.1.5訂閱151
6.2Observable對像的組合154
6.2.1嵌套Observable對像155
6.2.2Observable對像的錯誤處理160
6.3Rx調度器163
6.4Subject和自頂向下響應式編程169
6.5小結173
6.6練習174
第7章軟件事務性內存176
7.1原子性變量的問題177
7.2使用STM180
7.2.1事務性引用182
7.2.2使用atomic語句183
7.3事務的組合185
7.3.1事務間的交互和副作用185
7.3.2單操作事務189
7.3.3嵌套的事務190
7.3.4事務和異常193
7.4事務的重試197
7.5事務性容器202
7.5.1事務局部變量202
7.5.2事務性數組203
7.5.3事務性映射205
7.6小結206
7.7練習207
第8章角色模型210
8.1使用角色模型211
8.1.1創建角色繫統和角色實例213
8.1.2未處理消息的管理216
8.1.3角色行為和狀態217
8.1.4Akka角色的層次關繫221
8.1.5角色的查找224
8.1.6角色的生命周期226
8.2角色之間的通信230
8.2.1ask模式231
8.2.2轉發模式234
8.2.3角色終止235
8.3角色的監管237
8.4遠程角色242
8.5小結246
8.6練習246
第9章並發編程實踐248
9.1選擇並發性編程的正確工具248
9.2將所有工具組合起來——編寫一個遠程文件瀏覽器252
9.2.1文件繫統建模253
9.2.2服務器接口256
9.2.3客戶端API258
9.2.4客戶端程序的用戶界面261
9.2.5實現客戶端邏輯265
9.2.6改進遠程文件瀏覽器270
9.3調試並發性程序271
9.3.1死鎖和沒有進度272
9.3.2程序錯誤輸出的調試276
9.3.3性能調優280
9.4小結286
9.5練習286
第10章 反應器編程模型289
10.1對反應器的需求290
10.2開始使用Reactor291
10.3Hello World程序291
10.4事件流293
10.4.1事件流的生命周期294
10.4.2事件流的函數式組合295
10.5反應器297
10.5.1反應器的定義和配置299
10.5.2使用通道300
10.6調度器302
10.7反應器生命周期304
10.8反應器繫統服務305
10.8.1日志服務306
10.8.2時鐘服務306
10.8.3Channels服務307
10.8.4定制服務309
10.9協議310
10.9.1定制一個服務器—客戶端協議311
10.9.2標準服務器—客戶端協議313
10.9.3路由協議316
10.9.4兩路協議318
10.10小結321
10.11練習321
本書是一本關於並發編程技術的教程,書中詳細介紹了並發編程中的主要概念和基本數據結構,包括傳統並發模型、基於Future 和Promise的異步編程、數據並行容器、基於響應式擴展的並發編程、軟件事務性內存、角色模型、並發編程實踐和反應器編程模型等。本書基於Scala語言編寫,實例豐富,可操作性很強。本書面向的用戶群體以Scala用戶為主,因為書中所有的示例都是基於Scala代碼的。但其他語言用戶也可以從中獲益良多,因為書中介紹的並發編程概念是普遍適用的,並不局限於特定編程語言,隻不過Scala比較適用於並發編程而已。