發表於2024-11-24
Java高並發編程詳解:多綫程與架構設計 計算機與互聯網 書籍|8010626 pdf epub mobi txt 電子書 下載
書名: | Java高並發編程詳解:多綫程與架構設計|8010626 |
圖書定價: | 89元 |
圖書作者: | 汪文君 |
齣版社: | 機械工業齣版社 |
齣版日期: | 2018/6/1 0:00:00 |
ISBN號: | 9787111599937 |
開本: | 16開 |
頁數: | 0 |
版次: | 1-1 |
作者簡介 |
汪文君 匯豐軟件(廣東)研發中心數據服務中心技術經理、技術專傢,目前專注於實時數據data pipeline平颱的構建與架構,在加入匯豐軟件以前,曾有5年多的移動通訊工作經驗,以及移動互聯網、雲計算和B2C電子商務平颱的開發架構經驗,熱衷於技術分享、技術細節錘煉。目前已錄製10餘套技術視頻,在互聯網上廣泛傳播。 |
內容簡介 |
本書主要包含四個部分: 部分主要闡述Thread的基礎知識,詳細介紹綫程的API使用、綫程安全、綫程間數據通信,以及如何保護共享資源等內容,它是深入學習多綫程內容的基礎。 第二部分引入瞭ClassLoader,這是因為ClassLoader與綫程不無關係,我們可以通過synchronized關鍵字,或者Lock等顯式鎖的方式在代碼的編寫階段對共享資源進行數據一緻性保護,那麼一個Class在完成初始化的整個過程到後在方法區(JDK8 以後在元數據空間)其數據結構是怎樣確保數據一緻性的呢?這就需要對ClassLoader有一個比較全麵的認識和瞭解。 第三部分詳細、深入地介紹volatile關鍵字的語義,volatile關鍵字在Java中非常重要,可以說它奠定瞭Java核心並發包的高效運行,在這一部分中,我們通過實例展示瞭如何使用volatile關鍵字以及非常詳細地介紹瞭Java內存模型等知識。 本書的第四部分,站在程序架構設計的角度深入講解瞭如何設計高效靈活的多綫程應用程序,這一部分長達15個章節,其重要程度可見一斑。 |
目錄 |
推薦序一 推薦序二 推薦序三 推薦序四 前言 第一部分 多綫程基礎 第1章 快速認識綫程 3 1.1 綫程的介紹 3 1.2 快速創建並啓動一個綫程 3 1.2.1 嘗試並行運行 4 1.2.2 並發運行交替輸齣 5 1.2.3 使用Jconsole觀察綫程 6 1.3 綫程的生命周期詳解 7 1.3.1 綫程的NEW狀態 8 1.3.2 綫程的RUNNABLE狀態 8 1.3.3 綫程的 RUNNING狀態 8 1.3.4 綫程的BLOCKED狀態 8 1.3.5 綫程的TERMINATED狀態 9 1.4 綫程的start方法剖析:模闆設計模式在Thread中的應用 9 1.4.1 Thread start方法源碼分析以及注意事項 9 1.4.2 模闆設計模式在Thread中的應用 11 1.4.3 Thread模擬營業大廳叫號機程序 13 1.5 Runnable接口的引入以及策略模式在Thread中的使用 16 1.5.1 Runnable的職責 16 1.5.2 策略模式在Thread中的應用 16 1.5.3 模擬營業大廳叫號機程序 18 1.6 本章總結 19 第2章 深入理解Thread構造函數 20 2.1 綫程的命名 20 2.1.1 綫程的默認命名 21 2.1.2 命名綫程 21 2.1.3 修改綫程的名字 22 2.2 綫程的父子關係 22 2.3 Thread與ThreadGroup 23 2.4 Thread與Runnable 24 2.5 Thread與JVM虛擬機棧 25 2.5.1 Thread與Stacksize 25 2.5.2 JVM內存結構 27 2.5.3 Thread與虛擬機棧 30 2.6 守護綫程 33 2.6.1 什麼是守護綫程 33 2.6.2 守護綫程的作用 34 2.7 本章總結 34 第3章 Thread API的詳細介紹 35 3.1 綫程sleep 35 3.1.1 sleep方法介紹 35 3.1.2 使用TimeUnit替代Thread.sleep 36 3.2 綫程yield 37 3.2.1 yield方法介紹 37 3.2.2 yield和sleep 37 3.3 設置綫程的優先級 38 3.3.1 綫程優先級介紹 38 3.3.2 綫程優先級源碼分析 39 3.3.3 關於優先級的一些總結 40 3.4 獲取綫程ID 40 3.5 獲取當前綫程 41 3.6 設置綫程上下文類加載器 41 3.7 綫程interrupt 42 3.7.1 interrupt 42 3.7.2 isInterrupted 43 3.7.3 interrupted 45 3.7.4 interrupt注意事項 46 3.8 綫程join 47 3.8.1 綫程join方法詳解 48 3.8.2 join方法結閤實戰 50 3.9 如何關閉一個綫程 53 3.9.1 正常關閉 54 3.9.2 異常退齣 56 3.9.3 進程假死 56 3.10 本章總結 58 第4章 綫程安全與數據同步 59 4.1 數據同步 59 4.1.1 數據不一緻問題的引入 59 4.1.2 數據不一緻問題原因分析 61 4.2 初識 synchronized關鍵字 62 4.2.1 什麼是synchronized 63 4.2.2 synchronized關鍵字的用法 63 4.3 深入synchronized關鍵字 65 4.3.1 綫程堆棧分析 65 4.3.2 JVM指令分析 67 4.3.3 使用synchronized需要注意的問題 70 4.4 This Monitor和Class Monitor的詳細介紹 72 4.4.1 this monitor 72 4.4.2 class monitor 74 4.5 程序死鎖的原因以及如何診斷 77 4.5.1 程序死鎖 77 4.5.2 程序死鎖舉例 77 4.5.3 死鎖診斷 80 4.6 本章總結 81 第5章 綫程間通信 82 5.1 同步阻塞與異步非阻塞 82 5.1.1 同步阻塞消息處理 82 5.1.2 異步非阻塞消息處理 83 5.2 單綫程間通信 84 5.2.1 初識wait和notify 84 5.2.2 wait和notify方法詳解 87 5.2.3 關於wait和notify的注意事項 89 5.2.4 wait和sleep 90 5.3 多綫程間通信 90 5.3.1 生産者消費者 90 5.3.2 綫程休息室wait set 93 5.4 自定義顯式鎖BooleanLock 94 5.4.1 synchronized關鍵字的缺陷 94 5.4.2 顯式鎖BooleanLock 95 5.5 本章總結 104 第6章 ThreadGroup詳細講解 105 6.1 ThreadGroup與Thread 105 6.2 創建ThreadGroup 105 6.3 復製Thread數組和ThreadGroup數組 106 6.3.1 復製Thread數組 106 6.3.2 復製ThreadGroup數組 109 6.4 ThreadGroup操作 109 6.4.1 ThreadGroup的基本操作 110 6.4.2 ThreadGroup的interrupt 113 6.4.3 ThreadGroup的destroy 114 6.4.4 守護ThreadGroup 115 6.5 本章總結 116 第7章 Hook綫程以及捕獲綫程執行異常 117 7.1 獲取綫程運行時異常 117 7.1.1 UncaughtExceptionHandler的介紹 117 7.1.2 UncaughtExceptionHandler實例 118 7.1.3 UncaughtExceptionHandler源碼分析 119 7.2 注入鈎子綫程 121 7.2.1 Hook綫程介紹 121 7.2.2 Hook綫程實戰 122 7.2.3 Hook綫程應用場景以及注意事項 124 7.3 本章總結 124 第8章 綫程池原理以及自定義綫程池 125 8.1 綫程池原理 125 8.2 綫程池實現 126 8.2.1 綫程池接口定義 127 8.2.2 綫程池詳細實現 131 8.3 綫程池的應用 139 8.4 本章總結 142 第二部分 Java ClassLoader 第9章 類的加載過程 144 9.1 類的加載過程簡介 144 9.2 類的主動使用和被動使用 145 9.3 類的加載過程詳解 148 9.3.1 類的加載階段 148 9.3.2 類的連接階段 149 9.3.3 類的初始化階段 154 9.4 本章總結 156 第10章 JVM類加載器 158 10.1 JVM內置三大類加載器 158 10.1.1 根類加載器介紹 159 10.1.2 擴展類加載器介紹 159 10.1.3 係統類加載器介紹 160 10.2 自定義類加載器 161 10.2.1 自定義類加載器,問候世界 161 10.2.2 雙親委托機製詳細介紹 165 10.2.3 破壞雙親委托機製 167 10.2.4 類加載器命名空間、運行時包、類的卸載等 170 10.3 本章總結 175 第11章 綫程上下文類加載器 177 11.1 為什麼需要綫程上下文類加載器 177 11.2 數據庫驅動的初始化源碼分析 178 11.3 本章總結 180 第三部分 深入理解volatile關鍵字 第12章 volatile關鍵字的介紹 182 12.1 初識volatile關鍵字 182 12.2 機器硬件CPU 184 12.2.1 CPU Cache模型 184 12.2.2 CPU緩存一緻性問題 186 12.3 Java內存模型 187 12.4 本章總結 188 第13章 深入volatile關鍵字 189 13.1 並發編程的三個重要特性 189 13.1.1 原子性 189 13.1.2 可見性 190 13.1.3 有序性 190 13.2 JMM如何保證三大特性 191 13.2.1 JMM與原子性 192 13.2.2 JMM與可見性 193 13.2.3 JMM與有序性 194 13.3 volatile關鍵字深入解析 195 13.3.1 volatile關鍵字的語義 195 13.3.2 volatile的原理和實現機製 197 13.3.3 volatile的使用場景 198 13.3.4 volatile和synchronized 199 13.4 本章總結 200 第14章 7種單例設計模式的設計 201 14.1 餓漢式 201 14.2 懶漢式 202 14.3 懶漢式+同步方法 203 14.4 Double-Check 204 14.5 Volatile+Double-Check 206 14.6 Holder方式 206 14.7 枚舉方式 207 14.8 本章總結 208 第四部分 多綫程設計架構模式 第15章 監控任務的生命周期 212 15.1 場景描述 212 15.2 當觀察者模式遇到Thread 212 15.2.1 接口定義 212 15.2.2 ObservableThread實現 215 15.3 本章總結 217 15.3.1 測試運行 217 15.3.2 關鍵點總結 219 第16章 Single Thread Execution設計模式 220 16.1 機場過安檢 220 16.1.1 非綫程安全 221 16.1.2 問題分析 223 16.1.3 綫程安全 225 16.2 吃麵問題 225 16.2.1 吃麵引起的死鎖 226 16.2.2 解決吃麵引起的死鎖問題 228 16.2.3 哲學傢吃麵 229 16.3 本章總結 230 第17章 讀寫鎖分離設計模式 231 17.1 場景描述 231 17.2 讀寫分離程序設計 232 17.2.1 接口定義 232 17.2.2 程序實現 234 17.3 讀寫鎖的使用 239 17.4 本章總結 242 第18章 不可變對象設計模式 244 18.1 綫程安全性 244 18.2 不可變對象的設計 244 18.2.1 非綫程安全的纍加器 245 18.2.2 方法 Java高並發編程詳解:多綫程與架構設計 計算機與互聯網 書籍|8010626 下載 mobi epub pdf txt 電子書 Java高並發編程詳解:多綫程與架構設計 計算機與互聯網 書籍|8010626 pdf epub mobi txt 電子書 下載 用戶評價
評分
評分
評分
評分
評分
評分
評分
評分
評分
類似圖書 點擊查看全場最低價
Java高並發編程詳解:多綫程與架構設計 計算機與互聯網 書籍|8010626 pdf epub mobi txt 電子書 下載 分享鏈接
去京東購買
去淘寶購買
去噹噹購買
去拼多多購買
相關圖書
|