官术网_书友最值得收藏!

前言

為何寫作本書

異步編程是可以讓程序并行運行的一種手段,可以讓程序中的一個工作單元與主應用程序線程分開獨立運行,進而提高應用程序的性能和響應能力等。

雖然Java為不同技術域提供了相應的異步編程技術,但是這些異步編程技術被散落到不同技術域的技術文檔中,沒有一個統一的文檔對其進行梳理歸納。另外這些技術之間是什么關系,各自的出現都是為了解決什么問題,我們也很難找到相關資料來解釋。

本書的出現則是為了打破這種局面,旨在對Java中相關的異步編程技術進行歸納總結,為讀者提供一個統一文檔來查閱、參考。

本書特色

本書涵蓋了Java中常見的異步編程場景,包括單JVM內的異步編程、跨主機通過網絡通信的遠程過程調用的異步調用與異步處理,以及Web請求的異步處理等。

本書在講解Java中每種異步編程技術時都附有案例,以理論與實踐相結合的方式,幫助讀者更好地掌握相關內容。

書中在講解每種異步編程技術時多會對其實現原理進行講解,讓讀者知其然也知其所以然。

對于最近比較熱門的反應式編程以及WebFlux的使用與原理解析,本書也有一定的深入探索。

本書讀者對象

本書適用于有一定Java編程基礎,并對Java并發編程、Java異步編程、反應式編程感興趣的讀者。

如何閱讀本書

對于初學者,建議按照本書編寫的章節順序進行學習,因為本書是按照從易到難的順序編寫的,并且每章都有一些代碼示例供大家動手實踐,以便加深理解。如果你對Java并發編程與異步編程有一定的了解,那么可以直接從目錄查看感興趣的章節進行學習。本書共分為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語言是如何從語言層面提供強大的異步編程能力的。

資源和勘誤

有需要的讀者可以到https://github.com/zhailuxu/async-program-demo下載本書的demo資源,由于筆者水平有限,如果你在閱讀本書時發現錯誤,可以把錯誤信息提交到華章網站(www.hzbook.com)。

致謝

首先要感謝機械工業出版社楊福川老師的團隊,他們擁有豐富的出版經驗,在本書的命名以及目錄結構調整上,給出了很多中肯的建議;其次要感謝我的家人,感謝他們對我的鼓勵與支持,讓我有充分的時間來寫作本書。

主站蜘蛛池模板: 周至县| 龙门县| 都江堰市| 怀化市| 东莞市| 新龙县| 无极县| 靖宇县| 招远市| 同江市| 托克托县| 辽宁省| 屯留县| 沿河| 唐海县| 康定县| 鄢陵县| 利辛县| 高台县| 日照市| 白沙| 黑水县| 阜宁县| 沅江市| 克拉玛依市| 伊宁市| 汤原县| 鹤山市| 报价| 新建县| 马龙县| 惠安县| 金川县| 建水县| 灌云县| 乐山市| 阿拉善盟| 遂宁市| 朝阳市| 厦门市| 内黄县|