- Java并發編程:核心方法與框架
- 高洪巖
- 1560字
- 2019-01-03 02:34:12

為什么要寫這本書
早在幾年前筆者就曾想過整理一份與Java并發包有關的稿件。因為市面上所有的Java書籍都是以1章或2章的篇幅介紹Java并發包技術,這就導致對Java并發包的講解并不是非常詳盡,包含的知識量遠遠不夠,并沒有完整覆蓋Java并發包技術的知識點。但可惜,苦于當時的時間及精力有限,一直沒有如愿。
也許是注定的安排,筆者現所在單位是集技術與教育為一體的軟件類企業,學員在學習完JavaSE/JavaEE之后想探索更深入的技術,比如大數據、分布式、高并發類的專題,就會立即遇到與Java并發包中API相關的問題。為了帶領學員在技術層面上有更高的追求,所以我將Java并發包的技術點以教案的方式進行整理,在課堂上與同學們一起進行學習、交流,同學們反響非常強烈。至此,若干年前的心愿終于了卻,同學們也很期待這樣一本書能出版發行,那樣他們就有真正的紙質參考資料了。若這份資料也被其他愛好Java并發的朋友們看到,并通過它學到相關知識,那就是我最大的榮幸了。
本書將給讀者一個完整的視角,秉承“大道至簡”的主導思想,只介紹Java并發包開發中最值得關注的內容,希望能拋磚引玉,以個人的一些想法和見解,為讀者拓展出更深入、全面的思路。
本書特色
本書盡量減少“啰嗦”式的文字語言,全部用Demo式案例來講解技術點的實現,使讀者看到代碼及運行結果后就可以知道此項目要解決的是什么問題。類似于網絡中Blog的風格,可讓讀者用最短的時間學會此知識點,明白此知識點如何應用,以及在使用時要避免什么。這就像“瑞士軍刀”,雖短小,卻鋒利。本書的目的就是幫讀者快速學習并解決問題。
讀者對象
? Java初級、中級程序員
? Java多線程開發者
? Java并發開發者
? 系統架構師
? 大數據開發者
? 其他對多線程技術感興趣的人員
如何閱讀本書
在整理本書時,筆者本著實用、易懂的學習原則整理了10個章節來介紹Java并發包相關的技術。
第1章講解了Semaphore和Exchanger類的使用,學完本章后,能更好地控制線程間的同步性,以及線程間如何更好、更方便地傳輸數據。
第2章是第1章的延伸,主要講解了CountDownLatch、CyclicBarrier類的使用及在Java并發包中對并發訪問的控制。本章主要包括Semaphore、CountDownLatch和CyclicBarrier的使用,它們在使用上非常靈活,所以對于API的介紹比較詳細,為讀者學習控制同步打好堅實的基礎。
第3章是第2章的升級,由于CountDownLatch和CyclicBarrier類都有相應的弊端,所以在JDK1.7中新增加了Phaser類來解決這些缺點。
第4章中講解了Executor接口與ThreadPoolExecutor線程池的使用,可以說本章中的知識也是Java并發包中主要的應用技術點,線程池技術也在眾多的高并發業務環境中使用。掌握線程池能更有效地提高程序運行效率,更好地統籌線程執行的相關任務。
第5章中講解Future和Callable的使用,接口Runnable并不支持返回值,但在有些情況下真的需要返回值,所以Future就是用來解決這樣的問題的。
第6章介紹Java并發包中的CompletionService的使用,該接口可以增強程序運行效率,因為可以以異步的方式獲得任務執行的結果。
第7章主要介紹的是ExecutorService接口,該接口提供了若干方法來方便地執行業務,是比較常見的工具接口對象。
第8章主要介紹計劃任務ScheduledExecutorService的使用,學完本章可以掌握如何將計劃任務與線程池結合使用。
第9章主要介紹Fork-Join分治編程。分治編程在多核計算機中應用很廣,它可以將大的任務拆分成小的任務再執行,最后再把執行的結果聚合到一起,完全利用多核CPU的優勢,加快程序運行效率。
第10章主要介紹并發集合框架。Java中的集合在開發項目時占有舉足輕重的地位,在Java并發包中也提供了在高并發環境中使用的Java集合工具類,讀者需要著重掌握Queue接口的使用。
勘誤和支持
由于筆者的水平有限,加之編寫時間倉促,書中難免會出現一些錯誤或者不準確的地方,懇請讀者批評指正。筆者郵箱是279377921@qq.com,期待能夠得到你們的真摯反饋,在技術之路上互勉共進。
本書的源代碼可以在華章網站(www.hzbook.com)下載。
致謝
感謝所在單位領導的支持與厚愛,使我在技術道路上更有信心。
感謝機械工業出版社華章公司的編輯們始終支持我的寫作,是你們的鼓勵和幫助引導我順利完成全部書稿。
高洪巖