包郵 Java並發編程實戰(第16屆Jolt大奬提名圖書,Java並發編|199038

包郵 Java並發編程實戰(第16屆Jolt大奬提名圖書,Java並發編|199038 pdf epub mobi txt 電子書 下載 2025

美 Brian Goetz,Tim P 著,童雲蘭 譯
圖書標籤:
  • Java並發編程
  • 並發編程
  • 多綫程
  • Java
  • 實戰
  • Jolt大奬
  • 計算機書籍
  • 技術
  • 編程
  • 開發
想要找書就要到 新城書站
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!
店鋪: 互動創新圖書專營店
齣版社: 機械工業齣版社
ISBN:9787111370048
商品編碼:27159373871
叢書名: 華章專業開發者書庫
齣版時間:2012-02-01
頁數:291

具體描述

 書[0名0]:  Java並發編程實戰([0第0]16屆Jolt[0大0]奬提[0名0]圖書,Java並發編程必讀佳作)|199038
 圖書定價:  69元
 圖書作者:  (美)Brian Goetz;Tim Peierls 等
 齣版社:   [1機1] 械工業齣版社
 齣版日期:  2012/2/1 0:00:00
 ISBN號:  9787111370048
 開本:  16開
 頁數:  291
 版次:  1-1
 作者簡介
作者:蓋茨(Brian Goetz) (美[0國0])Tim Peierls (美[0國0])Joshua Bloch 等 譯者:童雲蘭 等
本書作者都是Java Community Process JSR 166專傢組(並發工具)的主要成員,並在其他很多JCP專傢組裏任職。Brian Goetz有20多年的軟件谘詢行業經驗,並著有至少75篇關於Java開發的文章。
Tim Peierls是“現代多處理器”的典範,他在BoxPop.biz、唱片藝術和戲劇錶演方麵也頗有研究。
Joseph Bowbeer是一個Java ME專傢,他對並發編程的興趣始於Apollo計算 [1機1] 時代。David Holmes是《The Java Programming Language》一書的閤著者,任職於Sun公司。
Joshua Bloch是Google公司的[0首0]席Java架構師,《Effective Java》一書的作者,並參與著作瞭《Java Puzzlers》。
Doug Lea是《Concurrent Programming》一書的作者,紐約州立[0大0][0學0] Oswego分校的計算 [1機1] 科[0學0]教授。
 內容簡介
《Java並發編程實戰》深入淺齣地介紹瞭Java綫程和並發,是一本完美的Java並發參考手冊。書中從並發性和綫程安全性的基本概念齣發,介紹瞭如何使用類庫提供的基本並發構建塊,用於避免並發危險、構造綫程安全的類及驗證綫程安全的規則,如何將小的綫程安全類組閤成更[0大0]的綫程安全類,如何利用綫程來提高並發應用程序的吞吐量,如何識彆可並行執行的任務,如何提高單綫程子係統的響應性,如何確保並發程序執行預期任務,如何提高並發代碼的性能和可伸縮性等內容,後介紹瞭一些高級主題,如顯式鎖、原子變量、非阻塞算[0法0]以及如何開發自定義的同步工具類。
《Java並發編程實戰》適閤Java程序開發人員閱讀。
 目錄

《Java並發編程實戰》
對本書的贊譽
譯者序
前 言
[0第0]1章 簡介1
1.1 並發簡[0史0]1
1.2 綫程的[0優0]勢2
1.2.1 發揮多處理器的強[0大0]能力2
1.2.2 建模的簡單性3
1.2.3 異步事件的簡化處理3
1.2.4 響應更靈敏的用戶界麵4
1.3 綫程帶來的風險4
1.3.1 安全性問題5
1.3.2 活躍性問題7
1.3.3 性能問題7
1.4 綫程無處不在7
[0第0]一部分 基礎[0知0]識
[0第0]2章 綫程安全性11
2.1 什麼是綫程安全性13
2.2 原子性14
2.2.1 競態條件15
2.2.2 示例:延遲初始化中的競態條件16
2.2.3 復閤操作17
2.3 加鎖 [1機1] 製18
2.3.1 內置鎖20
2.3.2 重入21
2.4 用鎖來保護狀態22
2.5 活躍性與性能23
[0第0]3章 對象的共享27
3.1 可見性27
3.1.1 失效數據28
3.1.2 非原子的64位操作29
3.1.3 加鎖與可見性30
3.1.4 Volatile變量 30
3.2 發布與逸齣32
3.3 綫程封閉35
3.3.1 Ad-hoc綫程封閉35
3.3.2 棧封閉36
3.3.3 ThreadLocal類37
3.4 不變性38
3.4.1 Final域39
3.4.2 示例:使用Volatile類型來發布不可變對象40
3.5 安全發布41
3.5.1 不正確的發布:正確的對象被破壞42
3.5.2 不可變對象與初始化安全性42
3.5.3 安全發布的常用模式43
3.5.4 事實不可變對象44
3.5.5 可變對象44
3.5.6 安全地共享對象44
[0第0]4章 對象的組閤46
4.1 設計綫程安全的類46
4.1.1 收集同步需求47
4.1.2 依賴狀態的操作48
4.1.3 狀態的所有[0[0權0]0]48
4.2 實例封閉49
4.2.1 Java監視器模式51
4.2.2 示例:車輛追蹤51
4.3 綫程安全性的委托53
4.3.1 示例:基於委托的車輛追蹤器54
4.3.2 [0獨0]立的狀態變量55
4.3.3 [0當0]委托失效時56
4.3.4 發布底層的狀態變量57
4.3.5 示例:發布狀態的車輛追蹤器58
4.4 在現有的綫程安全類中添加功能59
4.4.1 客戶端加鎖 [1機1] 製60
4.4.2 組閤62
4.5 將同步策略文檔化62
[0第0]5章 基礎構建模塊66
5.1 同步容器類66
5.1.1 同步容器類的問題66
5.1.2 迭代器與Concurrent-ModificationException68
5.1.3 隱藏迭代器69
5.2 並發容器70
5.2.1 ConcurrentHashMap71
5.2.2 額外的原子Map操作72
5.2.3 CopyOnWriteArrayList72
5.3 阻塞隊列和生産者-消費者模式73
5.3.1 示例:桌麵搜索75
5.3.2 串行綫程封閉76
5.3.3 [0[0雙0]0]端隊列與工作密取77
5.4 阻塞方[0法0]與中斷方[0法0]77
5.5 同步工具類78
5.5.1 閉鎖79
5.5.2 FutureTask80
5.5.3 信號量82
5.5.4 柵欄83
5.6 構建高效且可伸縮的結果緩存85
[0第0]二部分 結構化並發應用程序
[0第0]6章 任務執行93
6.1 在綫程中執行任務93
6.1.1 串行地執行任務94
6.1.2 顯式地為任務創建綫程94
6.1.3 無限製創建綫程的不足95
6.2 Executor框架96
6.2.1 示例:基於Executor的Web服務器97
6.2.2 執行策略98
6.2.3 綫程池98
6.2.4 Executor的生命周期99
6.2.5 延遲任務與周期任務101
6.3 找齣可利用的並行性102
6.3.1 示例:串行的頁麵渲染器102
6.3.2 攜帶結果的任務C[0all0]able與Future103
6.3.3 示例:使用Future實現頁麵渲染器104
6.3.4 在異構任務並行化中存在的局限106
6.3.5 CompletionService:Executor與BlockingQueue106
6.3.6 示例:使用CompletionService實現頁麵渲染器107
6.3.7 為任務設置時限108
6.3.8 示例:旅行預定門戶網站109
[0第0]7章 取消與關閉111
7.1 任務取消111
7.1.1 中斷113
7.1.2 中斷策略116
7.1.3 響應中斷117
7.1.4 示例:計時運行118
7.1.5 通過Future來實現取消120
7.1.6 處理不可中斷的阻塞121
7.1.7 采用newTaskFor來封裝非標準的取消122
7.2 停止基於綫程的服務124
7.2.1 示例:日誌服務124
7.2.2 關閉ExecutorService127
7.2.3 “毒丸”對象128
7.2.4 示例:隻執行一次的服務129
7.2.5 shutdown[0No0]w的局限性130
7.3 處理非正常的綫程終止132
7.4 JVM關閉135
7.4.1 關閉鈎子135
7.4.2 守護綫程136
7.4.3 終結器136
[0第0]8章 綫程池的使用138
8.1 在任務與執行策略之間的隱性耦閤138
8.1.1 綫程飢餓死鎖139
8.1.2 運行時間較長的任務140
8.2 設置綫程池的[0大0]小140
8.3 配置ThreadPoolExecutor141
8.3.1 綫程的創建與銷毀142
8.3.2 管理隊列任務142
8.3.3 飽和策略144
8.3.4 綫程工廠146
8.3.5 在調用構造函數後再定製ThreadPoolExecutor147
8.4 擴展 ThreadPoolExecutor148
8.5 遞歸算[0法0]的並行化149
[0第0]9章 圖形用戶界麵應用程序156
9.1 為什麼GUI是單綫程的156
9.1.1 串行事件處理157
9.1.2 Swing中的綫程封閉 [1機1] 製158
9.2 短時間的GUI任務160
9.3 長時間的GUI任務161
9.3.1 取消162
9.3.2 進度標識和完成標識163
9.3.3 SwingWorker165
9.4 共享數據模型165
9.4.1 綫程安全的數據模型166
9.4.2 分解數據模型166
9.5 其他形式的單綫程子係統167
[0第0]三部分 活躍性、性能與測試
[0第0]10章 避免活躍性危險169
10.1 死鎖169
10.1.1 鎖順序死鎖170
10.1.2 動態的鎖順序死鎖171
10.1.3 在協作對象之間發生的死鎖174
10.1.4 開放調用175
10.1.5 資源死鎖177
10.2 死鎖的避免與診斷178
10.2.1 支持定時的鎖178
10.2.2 通過綫程轉儲信息來分析死鎖178
10.3 其他活躍性危險180
10.3.1 飢餓180
10.3.2 糟糕的響應性181
10.3.3 活鎖181
[0第0]11章 性能與可伸縮性183
11.1 對性能的思考183
11.1.1 性能與可伸縮性184
11.1.2 [0評0]估各種性能[0[0權0]0]衡因素185
11.2 Amdahl定律186
11.2.1 示例:在各種框架中隱藏的串行部分188
11.2.2 Amdahl定律的應用189
11.3 綫程引入的開銷189
11.3.1 上下文切換190
11.3.2 內存同步190
11.3.3 阻塞192
11.4 減少鎖的競爭192
11.4.1 縮小鎖的範圍(“快進快齣”)193
11.4.2 減小鎖的粒度195
11.4.3 鎖分段196
11.4.4 避免熱點域197
11.4.5 一些替代[0獨0]占鎖的方[0法0]198
11.4.6 監測CPU的利用率199
11.4.7 嚮對象池說“不”200
11.5 示例:比較Map的性能200
11.6 減少上下文切換的開銷201
[0第0]12章 並發程序的測試204
12.1 正確性測試205
12.1.1 基本的單元測試206
12.1.2 對阻塞操作的測試207
12.1.3 安全性測試208
12.1.4 資源管理的測試212
12.1.5 使用迴調213
12.1.6 産生更多的交替操作214
12.2 性能測試215
12.2.1 在PutTakeTest中增加計時功能215
12.2.2 多種算[0法0]的比較217
12.2.3 響應性衡量218
12.3 避免性能測試的陷阱220
12.3.1 垃圾迴收220
12.3.2 動態編譯220
12.3.3 對代碼路徑的不真實采樣222
12.3.4 不真實的競爭程度222
12.3.5 無用代碼的消除223
12.4 其他的測試方[0法0]224
12.4.1 代碼審查224
12.4.2 靜態分析工具224
12.4.3 麵嚮方麵的測試技術226
12.4.4 分析與監測工具226
[0第0]四部分 高級主題
[0第0]13章 顯式鎖227
13.1 Lock與 ReentrantLock227
13.1.1 輪詢鎖與定時鎖228
13.1.2 可中斷的鎖獲取操作230
13.1.3 非塊結構的加鎖231
13.2 性能考慮因素231
13.3 公平性232
13.4 在synchronized和ReentrantLock之間進行選擇234
13.5 讀-寫鎖235
[0第0]14章 構建自定義的同步工具238
14.1 狀態依賴性的管理238
14.1.1 示例:將前提條件的失敗傳遞給調用者240
14.1.2 示例:通過輪詢與休眠來實現簡單的阻塞241
14.1.3 條件隊列243
14.2 使用條件隊列244
14.2.1 條件謂詞244
14.2.2 過早喚醒245
14.2.3 丟失的信號246
14.2.4 通[0知0]247
14.2.5 示例:閥門類248
14.2.6 子類的安全問題249
14.2.7 封裝條件隊列250
14.2.8 入口協議與齣口協議250
14.3 顯式的Condition對象251
14.4 Synchronizer剖析253
14.5 AbstractQueuedSynchronizer254
14.6 java.util.concurrent同步器類中的 AQS257
14.6.1 ReentrantLock257
14.6.2 Semaphore與CountDownLatch258
14.6.3 FutureTask259
14.6.4 ReentrantReadWriteLock259
[0第0]15章 原子變量與非阻塞同步 [1機1] 製261
15.1 鎖的劣勢261
15.2 硬件對並發的支持262
15.2.1 比較並交換263
15.2.2 非阻塞的計數器264
15.2.3 JVM對CAS的支持265
15.3 原子變量類265
15.3.1 原子變量是一種“更好的volatile”266
15.3.2 性能比較:鎖與原子變量267
15.4 非阻塞算[0法0]270
15.4.1 非阻塞的棧270
15.4.2 非阻塞的鏈錶272
15.4.3 原子的域更[親斤]器274
15.4.4 ABA問題275
[0第0]16章 Java內存模型277
16.1 什麼是內存模型,為什麼需要它277
16.1.1 平颱的內存模型278
16.1.2 重排序278
16.1.3 Java內存模型簡介280
16.1.4 藉助同步281
16.2 發布283
16.2.1 不安全的發布283
16.2.2 安全的發布284
16.2.3 安全初始化模式284
16.2.4 [0[0雙0]0]重檢查加鎖286
16.3 初始化過程中的安全性287
附錄A 並發性標注289
參考文獻291
 編輯推薦
《Java並發編程實戰》[0第0]16屆Jolt[0大0]奬提[0名0]圖書,JavaOne[0大0][0會0][0暢0]銷圖書,瞭解Java並發編程必讀佳作。綫程是Java平颱的基礎組成部分之一。隨著多核處理器逐漸成為主流,如何高效地使用並發已成為構建高性能應用程序的重要因素。Java SE 5和Java 6在並發程序開發方麵取得瞭巨[0大0]的進步,在其Java虛擬 [1機1] 中能支持一些高性能的並且具有高可伸縮性的並發類,此外還支持一組[親斤]的並發基礎構建模塊。在《Java並發編程實戰》中,這些[親斤]功能的編寫者們不僅介紹瞭它們的工作原理和使用方式,還介紹瞭隱藏在這些功能背後的研究背景與設計模式。
然而,在開發、測試以及調試多綫程的程序時仍然存在巨[0大0]的睏難。開發人員很容易編寫齣一些看似能正常工作,但在一些情況下仍然[0會0]失敗的程序(包括在正式發布的産[0品0]中,以及在高負載環境中)。《Java並發編程實戰》不僅講解瞭並發的理論基礎,還介紹瞭各種實際的開發技術,這些[0知0]識對於構建可靠的、可伸縮的以及可維護的並發應用程序來說非常有用。《Java並發編程實戰》並不僅是簡單地羅列齣各種並發API以及 [1機1] 製,而是詳細地介紹瞭許多設計原則、設計模式以及思維模式,這些內容使得開發人員更容易構建齣正確的並且高性能的並發程序。
《Java並發編程實戰》主要內容包括:並發性與綫程安全性的基本概念,構建以及組閤各種綫程安全類的技術,使用java.util.concurrent包中的各種井發構建基礎模塊,性能[0優0]化中的注意事項,如何測試並發程序,以及一些高級主題,包括原子變量,無阻塞算[0法0]及JAVA內存模。

用戶評價

評分

評分

評分

評分

評分

評分

評分

評分

評分

相關圖書

本站所有內容均為互聯網搜尋引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度google,bing,sogou

© 2025 book.cndgn.com All Rights Reserved. 新城书站 版權所有