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

前言

關于Java與并行

由于單核CPU的主頻逐步逼近極限,多核CPU架構成了一種必然的技術趨勢,因此多線程并行程序便顯得越來越重要。并行計算的一個重要應用場景就是服務端編程。目前服務端CPU的核心數已經輕松超越10個,而Java顯然已經成為當下最流行的服務端編程語言,且已經更新到JDK 10,因此熟悉和了解基于Java的并行程序開發有著重要的實用價值。

本書的體系結構

本書立足于實際開發,又不缺乏理論介紹,力求通俗易懂、循序漸進。本書共分為9章。

第1章主要介紹了并行計算中相關的一些基本概念,樹立讀者對并行計算的基本認識,介紹了兩個重要的并行性能評估定律,以及Java內存模型JMM。

第2章介紹了Java并行程序開發的基礎,包括Java中Thread的基本使用方法等,也詳細介紹了并行程序容易引發的一些錯誤,以及容易出現的誤用。

第3章介紹了JDK內部對并行程序開發的支持,主要介紹juc(java.util.concurrent)中一些工具的使用方法、各自的特點及它們的內部實現原理。

第4章介紹了在開發過程中可以進行的對鎖的優化,也進一步簡要描述了Java虛擬機層面對并行程序的優化支持。此外,還花費一定的篇幅介紹了無鎖的計算。

第5章介紹了并行程序設計中常見的一些設計模式,以及一些典型的并行算法和使用方法,其中包括重要的Java NIO和AIO的介紹。

第6章介紹了Java 8/9/10為并行計算做的改進,包括并行流、CompletableFuture、StampedLock、LongAdder,以及發布和訂閱模式等。

第7章主要介紹了高并發框架Akka的基本使用方法,并使用Akka框架實現了一個簡單的粒子群算法,模擬超高并發的場景。

第8章介紹了使用Eclipse進行多線程調試的方法,并演示了通過Eclipse進行多線程調試重現ArrayList的線程不安全問題。

第9章介紹了Jetty,并分析了Jetty的一些關鍵代碼,主要展示它在高并發優化中所做的一些努力,也為讀者學會并深入理解高并發帶來一些提示和思考。

本書特色

本書的主要特色如下。

1.結構清晰。本書一共9章,總體上循序漸進,逐步提升。每一章都有鮮明的側重點,有利于讀者快速抓住重點。

2.理論結合實戰。本書注重實戰,書中重要的知識點都安排了代碼實例,幫助讀者理解。同時也不忘對系統的內部實現原理進行深度剖析。

3.通俗易懂。本書盡量避免采用過于理論化的描述方式,簡單的白話文風格貫穿全書,配圖基本上為手工繪制,降低了理解難度,并盡量做到讀者在閱讀過程中少盲點、無盲點。

適合閱讀人群

雖然本書力求通俗,但是要通讀本書并取得良好的學習效果,要求讀者具備基本的Java知識或者一定的編程經驗。因此,本書適合以下讀者。

● 擁有一定開發經驗的Java平臺開發人員(Java、Scala、JRuby等)。

● 軟件設計師、架構師。

● 系統調優人員。

● 有一定的Java編程基礎并希望進一步加深對并行程序的理解的研發人員。

本書的約定和更新

本書在敘述過程中,有如下約定。

● 本書所述的JDK 1.5、JDK 1.6、JDK 1.7、JDK 1.8、JDK 1.9、JDK 1.10分別等同于

JDK 5、JDK 6、JDK 7、JDK 8、JDK 9、JDK 10。

● 如無特殊說明,本書的程序、示例均在JDK 1.8以上環境中運行。

相較前一版,本書的主要更新如下。

1.第3章增加的內容如下。

● 使用JMH進行性能測試。

● CopyOnWriteArrayList ConcurrentLinkedQueue性能測試。

● 使用Guava的RateLimiter限流。

● Guava中對線程池的擴展。

● 介紹JDK中ArrayBlockingQueue的算法。

2.第5章增加的內容如下。

● Guava對Future模式的支持。

3.第6章增加的內容如下。

● 支持timeout的CompletableFuture。

● ConcurrentHashMap在新版本JDK中的增強。

● 發布和訂閱模式。

4.增加第9章,主要介紹Jetty多線程優化。從細節入手分析Jetty在多線程并發方面做出的努力和優化,對實踐應用具有極強的參考價值。

聯系作者

本書的寫作過程遠比我想象得艱辛,為了讓全書能夠更清楚、更準確地表達和論述,我經歷了很多個不眠之夜,即使現在回想起來,我也忍不住會打個寒戰。由于寫作水平的限制,書中難免會有不妥之處,望讀者諒解。

為此,如果讀者有任何疑問或者建議,非常歡迎大家加入QQ群254693571,一起探討學習中的困難、分享學習經驗,我期待與大家一起交流、共同進步。同時,大家也可以關注我的博客http://www.uucode.net/。歡迎大家去博文視點社區下載本書推薦的參考文獻。

感謝

本書能夠面世,是因為得到了眾人的支持。首先,要感謝我的妻子,她始終不辭辛勞、毫無怨言地對我照顧有加,才讓我得以騰出大量時間安心工作。其次,要感謝所有編輯為我一次又一次地審稿改錯,批評指正,促進本書逐步完善。最后,感謝我的母親三十年如一日對我的體貼和關心。

葛一鳴

讀者服務

輕松注冊成為博文視點社區用戶(www.broadview.com.cn),您即可享受以下服務:

下載資源:本書如提供示例代碼及資源文件,均可在 下載資源 處下載。

提交勘誤:您對書中內容的修改意見可在 提交勘誤 處提交,若被采納,將獲贈博文視點社區積分(在您購買電子書時,積分可用來抵扣相應金額)。

與作者交流:在頁面下方 讀者評論 處留下您的疑問或觀點,與作者和其他讀者一同學習交流。

頁面入口:http://www.broadview.com.cn/35003

主站蜘蛛池模板: 绥芬河市| 会宁县| 德阳市| 汉寿县| 吉水县| 梧州市| 玉树县| 明光市| 双牌县| 额敏县| 巴马| 会昌县| 嘉鱼县| 贺州市| 淳化县| 格尔木市| 嘉义县| 水富县| 措勤县| 雅江县| 潮安县| 兴国县| 高要市| 柳州市| 禹城市| 同江市| 江川县| 石屏县| 永福县| 屏边| 广宁县| 南皮县| 安西县| 永安市| 临高县| 中阳县| 聂荣县| 天津市| 京山县| 平顺县| 油尖旺区|