TOP
0
0
【簡體曬書節】 單本79折,5本7折,優惠只到5/31,點擊此處看更多!
Java多線程編程核心技術(第3版)(簡體書)
滿額折

Java多線程編程核心技術(第3版)(簡體書)

商品資訊

人民幣定價:129 元
定價
:NT$ 774 元
優惠價
87673
領券後再享88折起
海外經銷商無庫存,到貨日平均30天至45天
可得紅利積點:20 點
相關商品
商品簡介
名人/編輯推薦
目次

商品簡介

本書作為講解Java多線程技術的教程,主要介紹非常核心並常用的技術點,比如解決線程Thread的停止,線程對象Thread的暫停,線程的優先級,synchronized關鍵字的使用,以及使用它解決非線程安全的問題。使用volatile關鍵字解決變量可見性問題,使用wait()及notify()方法實現等待通知模式,還有使用ThreadLocal類進行隔離變量,Lock鎖對象的使用,包含Condition類實現生產者-消費者模式,深入講解了Condition類在使用上的細節。還包括對Lock鎖對象中的常見API進行細化講解,ReentrantReadWriteLock讀寫鎖的使用等,Timer定時器類的使用。多線程實現單例模式時完整的解決步驟,以及多線程異常的處理等常見Java多線程解決方案。併發集合框架的使用,以及線程池技術點的使用。

名人/編輯推薦

暢銷書作者撰寫,全新升級,新增適合微服務與分布式開發的併發集合框架與Java線程池知識

目次

前 言
第1章 Java多線程技能 1
1.1 進程和線程的定義及多線程的優點 1
1.2 使用多線程 5
1.2.1 繼承Thread類 6
1.2.2 使用常見的3個命令分析線程的信息 8
1.2.3 線程隨機性的展現 10
1.2.4 執行start()的順序不代表執行run()的順序 12
1.2.5 實現Runnable接口 14
1.2.6 使用Runnable接口實現多線程的優點 15
1.2.7 public Thread(Runnable target)中的target參數 16
1.2.8 實例變量共享導致的“非線程安全”問題與相應的解決方案 18
1.2.9 Servlet技術也會引起“非線程安全”問題 22
1.2.10 留意i--與System.out.println()出現的“非線程安全”問題 25
1.2.11 方法run()被JVM所調用 27
1.3 方法currentThread() 27
1.4 方法isAlive() 30
1.5 方法sleep(long millis) 33
1.6 方法sleep(long millis, int nanos) 34
1.7 方法StackTraceElement[] getStack-Trace() 35
1.8 方法static void dumpStack() 36
1.9 方法Map getAllStackTraces() 37
1.10 方法getId() 39
1.11 停止線程 40
1.11.1 停止不了的線程 41
1.11.2 判斷線程是不是停止狀態 42
1.11.3 清除中斷狀態的使用場景 44
1.11.4 能停止的線程―異常法 48
1.11.5 在sleep狀態下停止 51
1.11.6 使用stop()暴力停止線程 53
1.11.7 方法stop()與java.lang.Thread-Death異常 55
1.11.8 使用stop()釋放鎖導致數據結果不一致 57
1.11.9 使用return;語句停止線程的缺點及相應的解決方案 59
1.12 暫停線程 61
1.12.1 方法suspend()與resume()的使用 62
1.12.2 方法suspend()與resume()的缺點―獨佔 63
1.12.3 方法suspend()與resume()的缺點―數據不完整 66
1.12.4 使用LockSupport類實現線程暫停與恢復 67
1.13 方法yield() 69
1.14 線程的優先級 70
1.14.1 線程優先級的繼承特性 71
1.14.2 線程優先級的規律性 72
1.14.3 線程優先級的隨機性 75
1.14.4 看誰跑得快 76
1.15 守護線程 78
1.16 併發與並行 79
1.17 同步與異步 80
1.18 多核CPU不一定比單核CPU運行快 81
1.19 本章小結 82
第2章 對象及變量的併發訪問 83
2.1 synchronized同步方法 83
2.1.1 方法內的變量是線程安全的 83
2.1.2 實例變量“非線程安全”問題及解決方案 85
2.1.3 同步synchronized在字節碼指令中的原理 88
2.1.4 多個對象多個鎖 90
2.1.5 synchronized方法將對象作為鎖 92
2.1.6 髒讀與解決 97
2.1.7 synchronized鎖重入 99
2.1.8 繼承環境下的鎖重入 100
2.1.9 出現異常,鎖自動釋放 102
2.1.10 非同步方法?:不使用synchronized重寫方法 104
2.2 synchronized同步語句塊 106
2.2.1 synchronized方法的弊端 106
2.2.2 synchronized同步代碼塊的使用 109
2.2.3 用同步代碼塊解決同步方法的弊端 111
2.2.4 一半異步,一半同步 112
2.2.5 synchronized代碼塊間的同步性 114
2.2.6 方法println()也是同步的 116
2.2.7 驗證synchronized(this)同步代碼塊是鎖定當前對象的 117
2.2.8 將任意對象作為鎖 119
2.2.9 多個鎖就是異步執行 121
2.2.10 驗證方法被調用是隨機的 124
2.2.11 不同步導致的邏輯錯誤與解決方案 125
2.2.12 細化驗證3個結論 129
2.2.13 類對象的單例性 134
2.2.14 靜態同步?:synchronized方法與synchronized(class)代碼塊 135
2.2.15 同步synchronized方法可以對類的所有對象實例起作用 139
2.2.16 同步synchronized(class)代碼塊可以對類的所有對象實例起作用 141
2.2.17 String常量池特性與同步問題 143
2.2.18 synchronized方法無限等待問題與解決方案 146
2.2.19 多線程的死鎖 148
2.2.20 內置類與靜態內置類 150
2.2.21 內置類與同步?:實驗1 153
2.2.22 內置類與同步?:實驗2 155
2.2.23 鎖對象改變導致異步執行 156
2.2.24 鎖對象不改變依然是同步執行 159
2.2.25 同步寫法案例比較 161
2.2.26 方法holdsLock(Object obj)的使用 161
2.2.27 臨界區 162
2.3 volatile關鍵字 162
2.3.1 可見性的測試 163
2.3.2 原子性與非原子性的測試 171
2.3.3 禁止代碼重排序的測試 179
2.4 本章小結 190
第3章 線程間通信 191
3.1 wait/ notify機制 191
3.1.1 不使用wait/notify機制進行通信的缺點 191
3.1.2 什麼是wait/notify機制 194
3.1.3 wait/notify機制的原理 194
3.1.4 方法wait()的基本用法 195
3.1.5 使用代碼完整實現wait /notify機制 196
3.1.6 使用wait/notify機制實現線程

您曾經瀏覽過的商品

購物須知

大陸出版品因裝訂品質及貨運條件與台灣出版品落差甚大,除封面破損、內頁脫落等較嚴重的狀態,其餘商品將正常出貨。

特別提醒:部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。

無現貨庫存之簡體書,將向海外調貨:
海外有庫存之書籍,等候約45個工作天;
海外無庫存之書籍,平均作業時間約60個工作天,然不保證確定可調到貨,尚請見諒。

為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。

若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。

優惠價:87 673
海外經銷商無庫存,到貨日平均30天至45天

暢銷榜

客服中心

收藏

會員專區