Java異步編程實戰

Java異步編程實戰

這是一部全面解析Java異步編程的著作,針對各種常見異步編程場景,從程式語言、開發框架等角度深入講解了異步編程的原理和方法。作者是淘寶的資深Java技術工程師,在Java異步編程、並發編程領域有深厚的積累。

基本介紹

  • 中文名:Java異步編程實戰
  • 作者:翟陸續
  • 出版時間:2019年12月12日
  • 出版社:機械工業出版社
  • 頁數:284 頁
  • ISBN:9787111642992
  • 類別:Java核心技術系列
  • 定價:79 元
  • 開本:16 開
  • 裝幀:平裝
內容簡介,圖書目錄,作者簡介,

內容簡介

全書共9章,每章內容概括如下:
第1-2章主要介紹了異步編程的概念、適用場景,以及如何使用執行緒和執行緒池來實現異步編程;
第3章首先講解JDK中的各種Future及其內部實現原理,然後講解如何使用Future實現異步編程,以及如何結合JDK8 Stream 和Future實現異步編程;
第4章講解了Spring框架中提供的異步執行能力,包含Spring中如何對TaskExecutor進行抽象,如何使用註解@Async實現異步編程,以及其內部實現原理;
第5章講解了比較熱門的反應式編程相關的內容,包含什麼是反應式編程,如何使用反應式編程規範的庫RxJava和Reactor庫實現異步編程;
第6章講解了Web Servlet的異步非阻塞處理,包含Servlet 3.0規範是如何提供異步處理能力的,Servlet 3.1規範是如何解決IO阻塞問題的,以及在Spring MVC中如何進行異步處理。
第7章講解與Servlet技術棧並行存在的、由Spring5.0提出來的Spring WebFlux的異步非阻塞處理,包含Spring WebFlux的由來、Spring WebFlux的並發模型、兩種編程模型,以及如何使用Spring WebFlux來進行服務開發、Spring WebFlux內部的實現原理。
第8章簡要介紹了業界為方便實現異步編程而設計的一些框架和中間件,比如異步基於事件驅動的網路編程框架Netty,高性能RPC框架Apache Dubbo,高性能執行緒間訊息傳遞庫Disruptor,異步基、分散式、基於事件驅動的編程框架Akka,高性能分散式訊息平台Apache RocketMQ 。
第9章介紹新興的Go語言是如何從語言層面提供了強大的異步編程能力的。
本書注重理論與實踐相結合,且每個異步技術點都附有代碼實例,幫助讀者加深理解。

圖書目錄

前言
●第1章 認識異步編程1
1.1 異步編程概念與作用1
1.2 異步編程場景2
1.3 總結9
●第2章 顯式使用執行緒和執行緒池實現異步編程10
2.1 顯式使用執行緒實現異步編程10
2.2 顯式使用執行緒池實現異步編程14
2.2.1 如何顯式使用執行緒池實現異步編程14
2.2.2 執行緒池ThreadPoolExecutor原理剖析17
2.3 總結34
●第3章 基於JDK中的Future實現異步編程35
3.1 JDK 中的Future35
3.2 JDK中的FutureTask37
3.2.1 FutureTask 概述37
3.2.2 FutureTask的類圖結構41
3.2.3 FutureTask的run( ) 方法45
3.2.4 FutureTask的get( )方法48
3.2.5 FutureTask的cancel(boolean mayInterruptIfRunning)方法50
3.2.6 FutureTask的局限性52
3.3 JDK中的CompletableFuture52
3.3.1 CompletableFuture 概述52
3.3.2 顯式設定CompletableFuture結果54
3.3.3 基於CompletableFuture實現異步計算與結果轉換56
3.3.4 多個CompletableFuture進行組合運算65
3.3.5 異常處理68
3.3.6 CompletableFuture概要原理70
3.4 JDK8 Stream & CompletableFuture76
3.4.1 JDK8 Stream76
3.4.2 當Stream遇見CompletableFuture79
3.5 總結81
●第4章 Spring框架中的異步執行82
4.1 Spring中對TaskExecutor的抽象82
4.2 如何在Spring中使用異步執行84
4.2.1 使用TaskExecutor實現異步執行84
4.2.2 使用註解@Async實現異步執行89
4.3 @Async註解異步執行原理96
4.4 總結109
●第5章 基於反應式編程實現異步編程110
5.1 反應式編程概述110
5.2 Reactive Streams規範120
5.3 基於RxJava實現異步編程123
5.4 基於Reactor實現異步編程133
5.5 總結136
●第6章 Web Servlet的異步非阻塞處理137
6.1 Servlet概述137
6.2 Servlet 3.0 提供的異步處理能力138
6.3 Servlet 3.1 提供的非阻塞IO能力145
6.4 Spring Web MVC 的異步處理能力153
6.4.1 基於DeferredResult的異步處理154
6.4.2 基於Callable實現異步處理155
6.5 總結157
●第7章 Spring WebFlux的異步非阻塞處理158
7.1 Spring WebFlux概述158
7.2 Reactive編程 & Reactor庫159
7.3 WebFlux伺服器160
7.4 WebFlux的並發模型163
7.5 WebFlux對性能的影響164
7.6 WebFlux的編程模型164
7.6.1 WebFlux註解式編程模型165
7.6.2 WebFlux函式式編程模型168
7.7 WebFlux原理淺嘗171
7.7.1 Reactor Netty概述171
7.7.2 WebFlux伺服器啟動流程173
7.7.3 WebFlux一次服務調用流程182
7.8 WebFlux的適用場景185
7.9 總結186
●第8章 高性能異步編程框架和中間件187
8.1 異步、基於事件驅動的網路編程框架—Netty187
8.1.1 Netty概述187
8.1.2 Netty的執行緒模型190
8.1.3 TCP半包與粘包問題196
8.1.4 基於Netty與CompletableFuture實現RPC異步調用198
8.2 高性能RPC框架—Apache Dubbo209
8.2.1 Apache Dubbo概述209
8.2.2 Dubbo的異步調用210
8.2.3 Dubbo的異步執行214
8.3 高性能執行緒間訊息傳遞庫—Disruptor217
8.3.1 Disruptor概述217
8.3.2 Disruptor的特性詳解220
8.3.3 基於Disruptor實現異步編程223
8.4 異步、分散式、基於訊息驅動的框架—Akka227
8.4.1 Akka概述227
8.4.2 傳統編程模型存在的問題228
8.4.3 Actor模型解決了傳統編程模型的問題232
8.4.4 基於Akka實現異步編程237
8.5 高性能分散式訊息框架—Apache RocketMQ244
8.5.1 Apache RocketMQ概述244
8.5.2 基於Apache RocketMQ實現系統間異步解耦246
8.6 總結254
●第9章 Go語言的異步編程能力255
9.1 Go語言概述255
9.2 Go語言的執行緒模型256
9.2.1 一對一模型256
9.2.2 多對一模型257
9.2.3 多對多模型258
9.2.4 Go語言的執行緒模型259
9.3 goroutine與channel261
9.3.1 goroutine261
9.3.2 channel265
9.3.3 構建管道實現異步編程269
9.4 總結273

作者簡介

翟陸續(花名:加多)
資深Java技術工程師,曾就職於阿里,有多年的Java研發經驗,在Java並發編程、異步編程等方面有深入研究和積累。對JUC包源碼有深入的理解,熟悉常用開源框架實現原理。
著有暢銷書《Java並發編程之美》。

相關詞條

熱門詞條

聯絡我們