- Java多線程編程核心技術
- 高洪巖
- 1458字
- 2019-01-01 01:10:22
前言
為什么要寫這本書
早在幾年前筆者就曾想過整理一份與Java多線程有關的稿件,因為市面上所有的Java書籍都是以一章或兩章的篇幅介紹多線程技術,并沒有完整地覆蓋該技術的知識點,但可惜,苦于當時的時間及精力有限,一直沒有達成所愿。
也許是注定的安排,我目前所在的單位是集技術與教育為一體的軟件類企業。我在工作中發現很多學員在學習完JavaSE/JavaEE之后想對更深入的技術進行探索,比如在對大數據、分布式、高并發類的專題進行攻克時,立即遇到針對java.lang包中Thread類的學習,但Thread類的學習并不像JDBC那樣簡單,學習多線程會遇到太多的問題、彎路以及我們所謂的“坑”,為了帶領學員在技術層面上進行更高的追求,我將多線程的技術點以教案的方式進行整理,在課堂上與同學們一起學習、交流,同學們反響也非常熱烈。此至,若干年前的心愿終于了卻,學員們也很期待這本書能出版發行,因為這樣他們就有了真正的紙質參考資料,其他愛好Java多線程的朋友們也在期盼本書的出版。本書能促進他們相互交流與學習,這就是我最大的心愿。
本書秉承大道至簡的主導思想,只介紹Java多線程開發中最值得關注的內容,希望能拋磚引玉,以個人的一些想法和見解,為讀者拓展出更深入、更全面的思路。
本書特色
在本書寫作的過程中,我盡量減少“啰嗦”的文字語言,全部用案例來講解技術點的實現,使讀者看到代碼及運行結果后就可以知道此項目要解決的是什么問題,類似于網絡中的博客風格,可讓讀者用最短的時間學完相關知識點,明白這些知識點是如何應用的,以及在使用時要避免什么。本書就像“瑞士軍刀”一樣,精短小,但卻非常鋒利,可幫讀者快速學習知識并解決問題。
讀者對象
本書適合所有Java程序員閱讀,尤其適合以下讀者:
·Java多線程開發者
·Java并發開發者
·系統架構師
·大數據開發者
·其他對多線程技術感興趣的人員
如何閱讀本書
在整理本書時,我一直本著實用、易懂的原則,最終整理出7章:
第1章講解了Java多線程的基礎,包括Thread類的核心API的使用。
第2章講解了在多線程中對并發訪問的控制,主要就是synchronized的使用,由于此關鍵字在使用上非常靈活,所以書中用了很多案例來介紹此關鍵字的使用,為讀者學習同步相關內容打好堅實的基礎。
第3章介紹線程并不是孤獨的,它們之間要通信,要交互。本章主要介紹wait()、notifyAll()和notify()方法的使用,使線程間能互相通信,合作完成任務。本章還介紹了ThreadLocal類的使用。學習完本章,讀者就能在Thread多線程中進行數據的傳遞了。
第4章講解了synchronized關鍵字,它使用起來比較麻煩,所以在Java5中提供了Lock對象,以求能更好地實現并發訪問時的同步處理,包括讀寫鎖等相關技術點。
第5章講解了Timer定時器類,其內部實現就是使用的多線程技術。定時器的計劃任務執行是很重要的技術點,包括在Android開發時都會有深入的使用,所以會為讀者詳細講解。
第6章講解的單例模式雖然很簡單,但如果遇到多線程將會變得非常麻煩,如何在多線程中解決這么棘手的問題呢?本章將全面介紹解決方案。
第7章,在整理稿件的過程中肯定會出現一些技術知識點的空缺,前面被遺漏的技術案例將在本章進行補充,以幫助讀者形成完整的多線程的知識體系。編寫本章的目的就是盡量使本書不存在技術空白點。
勘誤和支持
由于我的水平有限,編寫時間倉促,書中難免會出現一些錯誤或者不準確的地方,懇請讀者批評指正,讓我與大家一起,在技術之路上互勉共進。我的郵箱是279377921@qq.com,期待能夠得到你們的真摯反饋。本書的源代碼可以在華章網站(www.hzbook.com)下載。
致謝
感謝所在單位領導的支持與厚愛,使我在技術道路上更有信心。
感謝機械工業出版社華章公司的高婧雅和楊福川,因為有了你們的鼓勵、幫助和引導,我才能順利完成本書。
高洪巖
- Spring 5企業級開發實戰
- 編程卓越之道(卷3):軟件工程化
- AngularJS Web Application Development Blueprints
- Python王者歸來
- INSTANT CakePHP Starter
- Python Geospatial Development(Second Edition)
- HTML5入門經典
- Oracle從入門到精通(第5版)
- Terraform:多云、混合云環境下實現基礎設施即代碼(第2版)
- INSTANT Sinatra Starter
- C/C++程序員面試指南
- Spring 5 Design Patterns
- Arduino Wearable Projects
- Web程序設計:ASP.NET(第2版)
- 算法設計與分析:基于C++編程語言的描述