01.04 利用Java併發API強大功能,實現併發應用程序不費吹灰之力

內容提要

Java提供了一-套非常強大的併發API,可以輕鬆實現任何類型的併發應用程序。本書講述Java併發API最重要的元素,包括執行器框架、Phaser 類、Fork/Join 框架、流API、併發數據結構、同步機制,並展示如何在實際開發中使用它們。此外,本書還介紹了設計併發應用程序的方法論、設計模式、實現良好併發應用程序的提示和技巧、測試併發應用程序的工具和方法,以及如何使用面向Java虛擬機的其他編程語言實現併發應用程序。

前言:

目前,計算機系統(以及其他相關係統,如平板電腦、智能手機等)可以讓你同時執行多項任務。

這是因為它們擁有併發的操作系統,能夠同時控制多項任務。使用你最喜歡的編程語言中的併發API,還能實現一個可以同時執行多項任務(讀取文件、顯示消息、讀取網絡上的數據)的應用程序。Java提供了一套非常強大的併發API,讓你不費吹灰之力就可以實現任何類型的併發應用程序。在Java的每個版本中,該併發API提供給程序員的功能都有所增加。從Java8開始,已經包含了流API以及一些便於實現併發應用程序的新方法和類。本書講述了Java併發API最重要的元素,展示瞭如何在實際開發中使用它們。這些元素如下所示。

1.執行器框架,用於控制大量任務的執行。

2.Phaser類,用於執行可劃分為多個階段的任務。

3. Fork/Join框架,用於執行採用分治法解決問題的任務。

4.流API,用於處理大型數據源,包括新的反應流。

5.併發數據結構,用於在併發應用程序中存儲數據。

6.同步機制,用於組織併發任務。

此外,Java併發API還包含更多內容,包括設計併發應用程序的方法論、設計模式、實現良好併發應用程序的提示和技巧、測試併發應用程序的工具和方法,以及採用其他面向Java 虛擬機的語言(例如Clojure、Groovy 和Scala )實現併發應用程序的方法。

本書內容

第1章:“第一步:併發設計原理”。

這一章將介紹併發應用程序的設計原理。你還將瞭解到併發應用程序可能出現的問題,以及設計併發應用程序的方法論,同時還會學到一- 些設計模式、提示和技巧。

利用Java併發API強大功能,實現併發應用程序不費吹灰之力


利用Java併發API強大功能,實現併發應用程序不費吹灰之力


第2章:“使用基本元素: Thread和Runnable"。

這一章將解釋如何採用Java語言中最基本的元素( Runnable接口和Thread類)來實現併發應用程序。有了這些元素,你可以創建一個可與實際執行線程並行執行的新執行線程。

利用Java併發API強大功能,實現併發應用程序不費吹灰之力


利用Java併發API強大功能,實現併發應用程序不費吹灰之力

第3章:“管理大量線程:執行器”。

這一章將介紹執行器框架的基本原理。該框架讓你能夠使用大量的線程,而無須創建或管理它們。你將實現k-最近鄰算法和一個基本的客戶端/服務器應用程序。

利用Java併發API強大功能,實現併發應用程序不費吹灰之力

第4章:“充分利用執行器”。

這一章將探討執行器的一 - 些高級特性,包括為了在一段延遲之後或每隔一定時間執行任務而進行的任務撤銷和調度。你將實現一個高級客戶端/服務器應用程序和一個新聞閱讀器。

利用Java併發API強大功能,實現併發應用程序不費吹灰之力


第5章:“從任務獲取數據: callable 接口與Future接口”。

這一章將介紹如何在執行器中處理採用callable與Future接口返回結果的任務。你將實現-個最佳匹配算法以及一個構建倒排索引的應用程序。

利用Java併發API強大功能,實現併發應用程序不費吹灰之力


第6章:“運行分為多階段的任務: Phaser 類”。

這一章將介紹如何使用Phaser類來併發執行那些可分為多個階段的任務。你將實現關鍵字抽取算法和遺傳算法。

利用Java併發API強大功能,實現併發應用程序不費吹灰之力


利用Java併發API強大功能,實現併發應用程序不費吹灰之力


第7章:“優化分治解決方案: Fork/Join框架”。

這一章將介紹如何使用一種特殊的執行器,該執行器針對可以使用分治法解決的問題進行了優化,這就是Fork/Join框架及其工作竊取( work-stealing )算法。你將實現k-means聚類算法、數據篩選算法以及歸併排序算法。

利用Java併發API強大功能,實現併發應用程序不費吹灰之力

第8章:“使用並行流處理大規模數據集: MapReduce 模型”。

這一章將 介紹如何採用流來處理大規模數據集。你將學習如何使用流API和更多的流函數來實現MapReduce應用程序。你將實現一個數值彙總算法和一一個信息檢索工具。

利用Java併發API強大功能,實現併發應用程序不費吹灰之力


利用Java併發API強大功能,實現併發應用程序不費吹灰之力

第9章:“使用並行流處理大規模數據集: MapCollect 模型”。

這一章將 探討如何使用流API中的collect ()方法對數據流執行可變約簡( mutable reduction )操作,將其轉換為一種不同的數據結構,包括在Collectors類中預定義的一些收集器。你將實現一一個 無須建立索引就能夠搜索數據的工具、一個推薦系統,以及計算社交網絡中兩個人的共同聯繫人列表的算法。

利用Java併發API強大功能,實現併發應用程序不費吹灰之力

第10章:“異步流處理:反應流”。

這一章將解釋如何使用反應流來實現併發應用程序,而反應流則為帶有非阻塞回壓的異步流處理定義了標準。這種流的基本原理在官方網站的Reactive Streams介紹頁面上有明確說明,而Java 9為其實現提供了必要的基礎接口。

利用Java併發API強大功能,實現併發應用程序不費吹灰之力

第11章:“探究併發數據結構和同步工具”。

這一章將介紹如何使用最重要的併發數據結構(可用於併發應用程序而不會導致數據競爭條件的數據結構),以及Java併發API中用於組織任務執行的所有同步機制。

利用Java併發API強大功能,實現併發應用程序不費吹灰之力

第12章:“測試與監視併發應用程序”。

這一章將介紹如何獲得Java併發API元素(線程、鎖、執行器等)的狀態信息。你還將學習如何使用JConsole應用程序來監視併發應用程序,以及如何使用MultithreadedTC庫和Java Pathfinder應用程序來測試併發應用程序。

利用Java併發API強大功能,實現併發應用程序不費吹灰之力


利用Java併發API強大功能,實現併發應用程序不費吹灰之力

第13章:“JVM中的併發處理: Clojure、 帶有Gpars庫的Groovy以及Scala”。

這一章將介紹如何使用面向Java虛擬機的其他編程語言來實現併發應用程序。你將學習如何使用Clojure、Scala以及帶有Gpars庫的Groovy等編程語言所提供的併發元素。

利用Java併發API強大功能,實現併發應用程序不費吹灰之力

由於文章篇幅有限,為了節省大家的時間,所以整理出來了一部分內容供大家參考。小編已經幫助大家把文檔整理出來了,只需要私信【學習】二字即可。

如果大家喜歡小編的文章可以關注、轉發,萬分感謝!

利用Java併發API強大功能,實現併發應用程序不費吹灰之力



分享到:


相關文章: