閱讀574 返回首頁    go 技術社區[雲棲]


《 Java並發編程從入門到精通》目錄和序言

目 錄

第一部分:線程並發基礎

 


第1章 概念部分   1
1.1 CPU核心數、線程數 (主流cpu,線程數的大體情況說一下) 1
1.2 CPU時間片輪轉機製 2
1.3 什麼是進程和什麼是線程 4
1.4 進程和線程的比較 5
1.5 什麼是並行運行 7
1.6 什麼是多並發運行 8
1.7 什麼是吞吐量 9
1.8  多並發編程的意義及其好處和注意事項 10
1.9  分布式與並發運算關係 11
1.10 Linux和Window多並發可以采取不的一樣機製(apache和tomcat??) 6
第2章 認識Java裏麵的Thread       12
2.1 線程的實現三種方法 (先感受一下創建幾個多線程方法實例演練)12
2.2 Thread裏麵的屬性和方法 (通過工具看看能不能監控到thread裏麵的一些屬性值)16
2.3 線程的生命周期 19
2.4 什麼是守護線程 31
2.5 線程組 33
2.6 當前線程副本ThreadLocal(用意和實際應用場景) 35
2.7 線程異常的處理(單個和組)38
第3章 Thread安全     39
3.0 線程的內存模型
3.1 什麼是不安全(寫個代碼例子多並發帶來的一些問題,變量互串,相互影響) 39
3.2 什麼是安全(寫個代碼例子,安全的三種(多實例,加鎖,線程安全的集合類)情況,引出鎖)         43
3.3 第一種鎖:隱式鎖,又稱線程同步synchronized(舉幾個例子實際演示一下,及其寫法注意,帶來的額外開銷) 45
3.4 第二種鎖:顯示鎖,Lock;及其與synchronized的區別(ReentrantReadWriteLock) 49
3.5 什麼是死鎖 53
3.6 看如下代碼的鎖有用嗎 55
3.7 關鍵字:volatile       57
3.8 原子操作:atomic(atomic包FutureTask, AtomicLong等)   59
3.9 線程同步和鎖的原理(有待弄清楚鎖的運行機製和原理) 61
3.10 單利模式的寫法 63
第4章 線程安全的集合類     64
4.1 java.util.concurrent. ConcurrentMap 64
4.2 java.util.concurrent.ConcurrentHashMap 66
4.3 java.util.concurrent. CopyOnWriteArrayList 68
4.4 java.util.concurrent. CopyOnWriteArraySet 70
4.5 非concurrent下麵的線程安全集合類(Hashtable 和 Vector 和StringBuffer) 72
4.6 集合類安全的實現原理剖析 75

第二部分:線程並發晉級之高級部分 75


第5章 多線程之間交互:線程閥
5.1 線程安全的阻塞隊列BlockingQueue (詳解一翻java.util.concurrent.ConcurrentLinkedDeque 和java.util.concurrent. ConcurrentLinkedQueue) 76
5.2 同步計數器CountDownLatch   81
5.3 循環障礙CyclicBarrier   84
5.4 信號裝置Semaphore 87
5.5 任務機製FutureTask 90
第6章 線程池 115
6.1 什麼是線程池 90
6.2 newFixedThreadPool的使用   92
6.3 newCachedThreadPool 的使用 94
6.4 newSingleThreadExecutor的使用(插圖,原理) 96
6.5 線程池的好處(未使用的時候的情況,使用後的情況) 98
6.4 認識ExecutorService(ThreadFactory先創建一個線程及其參數的詳細講解,如何自定義線程池) 100
6.5 線程池的原理 106
6.6 線程池在工作中的錯誤使用 112
第7章 JDK7新增的Fork/Join 115
7.1 什麼是Fork/Join 架構 115
7.2 創建實際使用Fork/Join 線程池118
7.3 合並任務的結果 123
7.4 工作原理 126
7.5 異步運行任務 130
7.6 在任務中拋出異常 135
7.7 結束任務 140
7.8 實際應用場景 143

第三部分:實際的使用與監控與拓展


 

第8章 線程,線程池在實際互聯網項目開發中的應用
8.1 Servlet線程的設計
8.2 線程池如何合理設計與設置
8.3 Tomcat中線程池如何合理設置
8.4 Nginx線程池
8.5 數據庫連接池
8.6 工作中如何實現在分布式係統中實現高並發
第9章 線程的監控及其日常工作中如何分析
9.1 Java線程池的監控
9.2 ForkJoin的監控
9.3 Java內存模型
9.4 可視化監控工具的使用
9.5 Linux線程分析監控使用方法
9.6 Linux分析監控的運行腳本
9.7 Eclipse裏麵如何調試並發程序
9.8 如何通過壓力測試,測試服務器的抗壓能力
9.9 MultithreadedTC測試並發簡單介紹
第10章 線程在Android開發中的體現
10.1Android進程的基本知識
10.2Android進程的生命周期
10.3Android中Activity的生命周期
10.4Android線程的運行機製
10.5Android異步線程的處理方法
10.6Android異步線程的原理與實現

附錄一:JVM的參數
附錄二:Jstat的語法
附錄三:Jstat中的一些術語的中文解釋
附錄四:Tomcat裏麵的server.xml中Executor的參數
附錄五:Thread的API
結束語

 序言


古時候,有一個自認為佛學造詣很深的人,聽說某個寺廟裏有位德高望重的老禪師,便去拜訪。老禪師十分恭敬地接待了他,他講了自己的很多心得,希望老禪師給予指點。      老禪師聽後,沒有說話,隻是為他沏茶。可是在倒水時,明明水已經滿了,老禪師還在倒,而不顧茶水都已經溢了出來。最後,這個人終於忍不住說:“大師,杯子已經滿了。”老禪師這才住手。這個人問老禪師:“大師,請你指點。”老禪師說:“我已經教你了。”這個人不明所以,隻好回去了。冥思苦想,終於有一天他想明白了:如果自己不把舊茶倒掉,又哪有空間來添續新茶?
     空杯心態不僅是一種心境,更是一種做人的境界。其實我們學習,和看任何一本書的時候相信如果以空杯的心態去看的話,相信收獲會更多。功夫巨星李小龍就非常推崇空杯心態,他說:“清空你的杯子,方能再行注滿,空無以求全。”
     最近發現市麵上有些書籍要不就是直譯過來的,很多不實用,要不就是講的太玄乎其神了,而此書換一種方式,換一種思路來理解多並發和多線程,讓多線,多並發沒有那麼玄乎;這本書讀完讓你菜鳥變大牛。作者以10年的開發經驗做總結,希望能幫助讀者少走一些彎路。本書有淺入深再到實際。作者建議大家,不要動不動就Hadoop,動不動就分布式,其實將Java裏麵的多並發編程學習好了,其實就可以解決很多的問題的。
     建議大家看此書的時候,結合JDK的源碼,一起看,每個實例都要運行看看,還有看看咱們工作中,相關的設計是否合理。紙上得來終覺淺,絕知此事要躬行。一定要多加練習才行。

精彩書評:


      對於一個初學者,或者是工作了幾年的java工程師來說,通過詳細的讀此書,相信都一定會有或多或少的收獲,看到Jack(即作者)幾個月來的辛勤的勞動成功,表示感到欽佩。本書幾乎涵蓋了所有Java多並發,多線程開發相關的學習資料。相信此書一定會成為一個很好的多並發方麵的,書不離手的開發手冊。
                                                                         –Steve.Xiu

[10年Java工作經驗,現就職於alibaba高級開發]

韓愈有言“師者, 傳道受業解惑也”,讀完此書,對作者肅然起敬,他不正是秉承了這樣的師道在作此書嘛! 十多年的開發經驗傾囊相授,言之諄諄,例之鑿鑿,實為難得。對Java多線程的知識講解得如此詳盡,如此深入,給人一種一覽眾山小的感覺。期待更多力作麵世!
                                                                         –XiaoShuang.Li(李小雙)
[10年Java工作經驗,知名互聯網公司項目經理]

 

    我在IT軟件行業從業已12年。作為“前輩”,衡量一名“程序猿”的技術實力,一般會看你是否具備深度的係統性能調優的能力。雲計算的時代,對係統的高性能、高並發要求更高。所以,深入了解和掌握Java的多線程機製原理,非常有用,非常必要。
這本書的所有知識均來自於作者多年的項目實踐,傾注了作者多年的心血。講解的深入淺出,讓你掌握起來毫不費力。如果你想成為一名架構師,如果你想成為一名資深的技術大牛,強烈推薦你讀一讀,你值得擁有!
                                                                           –Justin.Han(韓劍鋒)
[12年Java工作經驗,曾在多家IT公司擔任研發總監、技術總監]
在進行並發編程開發之前,深入的學習並發理論知識非常有必要,比如閱讀並發容器的源碼,本書通過大量代碼實例,講解並發知識,非常細致。而在實戰中並發程序的問題定位也是非常麻煩,相信本書的第九章能給初學者一些參考。
                                                                        –Kiral(方騰飛)
[方騰飛,阿裏巴巴資深開發工程師,ifeve.com創始人]
感謝:
     書上有一部分內容都是有網友精彩提供,在此表示感謝!也謝謝那些精彩書評的朋友,謝謝大家的支持。

最後更新:2017-05-22 14:32:28

  上一篇:go  免費產品體驗碼有了,禮品還遠嗎?
  下一篇:go  Java Date Time 教程-java.sql.Date