實戰 Java 高並發程序設計, 2/e 实战Java高并发程序设计(第2版)

葛一鳴

買這商品的人也買了...

相關主題

商品描述

在單核CPU時代,單任務在一個時間點只能執行單一程序,隨著多核CPU的發展,並行程序開發變得尤為重要。本書主要介紹基於Java的並行程序設計基礎、思路、方法和實戰。第一,立足於並發程序基礎,詳細介紹Java進行並行程序設計的基本方法。第二,進一步詳細介紹了JDK對並行程序的強大支持,幫助讀者快速、穩健地進行並行程序開發。第三,詳細討論了“鎖”的優化和提高並行程序性能級別的方法和思路。第四,介紹了並行的基本設計模式,以及Java 8/9/10對並行程序的支持和改進。第五,介紹了高並發框架Akka的使用方法。第六,詳細介紹了並行程序的調試方法。第七,分析Jetty代碼並給出一些其在高並發優化方面的例子。本書內容豐富,實例典型,實用性強,適合有一定Java基礎的技術開發人員閱讀。

目錄大綱

第1章 走入並行世界
1.1 何去何從的並行計算
1.1.1 忘掉那該死的並行
1.1.2 可怕的現實:摩爾定律的失效
1.1.3 柳暗花明:不斷地前進
1.1.4 光明或是黑暗
1.2 你必須知道的幾個概念
1.2.1 同步(Synchronous)和異步(Asynchronous)
1.2.2 並發(Concurrency)和並行(Parallelism)
1.2.3 臨界區
1.2.4 阻塞(Blocking)和非阻塞(Non-Blocking)
1.2.5 死鎖(Deadlock)、饑餓(Starvation)和活鎖(Livelock)
1.3 並發級別
1.3.1 阻塞
1.3.2 無饑餓(Starvation-Free)
1.3.3 無障礙(Obstruction-Free)
1.3.4 無鎖(Lock-Free)
1.3.5 無等待(Wait-Free)
1.4 有關並行的兩個重要定律
1.4.1 Amdahl定律
1.4.2 Gustafson定律
1.4.3 是否相互矛盾
1.5 回到Java:JMM
1.5.1 原子性(Atomicity)
1.5.2 可見性(Visibility)
1.5.3 有序性(Ordering)
1.5.4 哪些指令不能重排:Happen-Before規則
第2章 Java並行程序基礎
2.1 有關線程你必須知道的事
2.2 初始線程:線程的基本操作
2.2.1 新建線程
2.2.2 終止線程
2.2.3 線程中斷
2.2.4 等待(wait)和通知(notify)
2.2.5 掛起(suspend)和繼續執行(resume)線程
2.2.6 等待線程結束(join)和謙讓(yeild)
2.3 volatile與Java內存模型(JMM)
2.4 分門別類的管理:線程組
2.5 駐守後台:守護線程(Daemon)
2.6 先做重要的事:線程優先級
2.7 線程安全的概念與關鍵字synchronized
2.8 程序中的幽靈:隱蔽的錯誤
2.8.1 無提示的錯誤案例
2.8.2 並發下的ArrayList
2.8.3 並發下詭異的HashMap
2.8.4 初學者常見的問題:錯誤的加鎖
第3章 JDK並發包
第4章 鎖的優化及註意事項
第5章 並行模式與算法
第6章 Java 8/9/10與並發
第7章 使用Akka構建高並發程序
第8章 並行程序調試
第9章 多線程優化示例―Jetty核心代碼分析

最後瀏覽商品 (20)