實戰Java高並發程序設計

實戰Java高並發程序設計 下載 mobi epub pdf 電子書 2024


簡體網頁||繁體網頁
葛一鳴 著



點擊這裡下載
    

想要找書就要到 圖書大百科
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!

發表於2024-11-18

類似圖書 點擊查看全場最低價


圖書介紹

店鋪: 吳城新華書店圖書音像專營店
齣版社: 電子工業齣版社
ISBN:9787121273049
商品編碼:23262646277
包裝:平裝
開本:16
齣版時間:2015-11-01


相關圖書





圖書描述


內容介紹
基本信息
書名: 實戰Java高並發程序設計
作者: 葛一鳴 開本:
YJ: 69
頁數:
現價: 見1;CY=CY部 齣版時間 2015-11
書號: 9787121273049 印刷時間:
齣版社: 電子工業齣版社 版次:
商品類型: 正版圖書 印次:
內容提要 作者簡介 葛一鳴:51CTO特約講師,國傢認證係統分析師,獲得Oracle OCP認證。長期從事Java軟件開發工作,對Java程序設計、JVM有深入的研究,對設計模式、人工智能、神經網絡、數據挖掘等技術有濃厚興趣,著有《自己動手寫神經網路》電子書和《實戰Java虛擬機》一書。

郭超:J職於杭州市道路運輸管理局信息中心,主要從事大型交通管理係統的分布式管理和並發模型設計,對Java的研究比較深入,專注於分布式應用和並發應用。
精彩導讀 4.4.6 數組也能無鎖:AtomicIntegerArray
除瞭提供基本數據類型外,JDK還為我們準備瞭數組等復閤結構。D前可用的原子數組有:AtomicIntegerArray、AtomicLongArray和AtomicReferenceArray,分彆錶示整數數組、long型數組和普通的對象數組。
這裏以AtomicIntegerArray為例,展示原子數組的使用方式。
AtomicIntegerArray本質上是對int[]類型的封裝,使用Unsafe類通過CAS的方式控製int[]在多綫程下的安全性。它提供瞭以下幾個核心API:
//獲得數組Di個下標的元素
public final int get(int i)
//獲得數組的長度
public final int length()
//將數組Di個下標設置為newValue,並返迴舊的值
public final int getAndSet(int i, int newValue)
//進行CAS操作,如果Di個下標的元素等於expect,則設置為update,設置成功返迴true
public final boolean compareAndSet(int i, int expect, int update)
//將Di個下標的元素加1
public final int getAndIncrement(int i)
//將Di個下標的元素減1
public final int getAndDecrement(int i)
//將Di個下標的元素增加delta(delta可以是負數)
public final int getAndAdd(int i, int delta)

下麵給齣一個簡單的示例,展示AtomicIntegerArray的使用:
01 public class AtomicIntegerArrayDemo {
02 static AtomicIntegerArray arr = new AtomicIntegerArray(10);
03 public static class AddThread implements Runnable{
04 public void run(){
05 for(int k=0;k<10000;k )
06 arr.getAndIncrement(k%arr.length());
07 }
08 }
09 public static void main(String[] args) throws InterruptedException {
10 Thread[] ts=new Thread[10];
11 for(int k=0;k<10;k ){
12 ts[k]=new Thread(new AddThread());
13 }
14 for(int k=0;k<10;k ){ts[k].start();}
15 for(int k=0;k<10;k ){ts[k].join();}
16 System.out.println(arr);
17 }
18 }

上述代碼D2行,申明瞭一個內含10個元素的數組。D3行定義的綫程對數組內10個元素進行纍加操作,每個元素各加1000次。D11行,開啓10個這樣的綫程。因此,可以預測,如果綫程安全,數組內10個元素的值必然都是10000。反之,如果綫程不安全,則部分或者全部數值會小於10000。
程序的輸齣結果如下:
[10000, 10000, 10000, 10000, 10000, 10000, 10000, 10000, 10000, 10000]

這說明AtomicIntegerArray確實閤理地保證瞭數組的綫程安全性。
目錄

D1章 走入並行SJ
1.1 何去何從的並行計算
1.1.1 忘掉那該死的並行
1.1.2 可怕的現實:摩爾定律的失效
1.1.3 柳暗花明:不斷地前進
1.1.4 光明或是黑暗
1.2 你必須知道的幾個概念
1.2.1 同步(SynchroDus)和異步(AsynchroDus)
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 阻塞(Blocking)
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 Amdahl定律和Gustafson定律是否相互矛盾
1.5 迴到Java:JMM
1.5.1 原子性(Atomicity)
1.5.2 可見性(Visibility)
1.5.3 有序性(Ordering)
1.5.4 哪些指令不能重排:Happen-Before規則
1.6 參考文獻


D2章 Java並行程序基礎
2.1 有關綫程你必須知道的事
2.2 初始綫程:綫程的基本操作
2.2.1 新建綫程
2.2.2 終止綫程
2.2.3 綫程中斷
2.2.4 等待(wait)和通知(Dtify)
2.2.5 掛起(suspend)和繼續執行(resume)綫程
2.2.6 等待綫程結束(join)和謙讓(yield)
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 初學者常見問題:錯誤的加鎖
2.9 參考文獻


D3章 JDK並發包
3.1 多綫程的團隊協作:同步控製
3.1.1 synchronized的功能擴展:重入鎖
3.1.2 重入鎖的好搭檔:Condition條件
3.1.3 允許多個綫程同時訪問:信號量(Semaphore)
3.1.4 ReadWriteLock讀寫鎖
3.1.5 DJS器:CountDownLatch
3.1.6 循環柵欄:CyclicBarrier
3.1.7 綫程阻塞工具類:LockSupport
3.2 綫程復用:綫程池
3.2.1 什麼是綫程池
3.2.2 不要重復發明輪子:JDK對綫程池的支持
3.2.3 刨根究底:核心綫程池的內部實現
3.2.4 超負載瞭怎麼辦:拒絕策略
3.2.5 自定義綫程創建:ThreadFactory
3.2.6 我的應用我做主:擴展綫程池
3.2.7 閤理的選擇:優化綫程池綫程數量
3.2.8 堆棧去哪裏瞭:在綫程池中尋找堆棧
3.2.9 分而治之:Fork/Join框架
3.3 不要重復發明輪子:JDK的並發容器
3.3.1 超好用的工具類:並發集閤簡介
3.3.2 綫程安全的HashMap
3.3.3 有關List的綫程安全
3.3.4 高效讀寫的隊列:深度剖析ConcurrentLinkedQueue
3.3.5 高效讀取:不變模式下的CopyOnWriteArrayList
3.3.6 數據共享通道:BlockingQueue
3.3.7 隨機數據結構:跳錶(SkipList)
3.4 參考資料


D4章 鎖的優化及注意事項
4.1 有助於提高"鎖"性能的幾點建議
4.1.1 減小鎖持有時間
4.1.2 減小鎖粒度
4.1.3 讀寫分離鎖來替換D占鎖
4.1.4 鎖分離
4.1.5 鎖粗化
4.2 Java虛擬機對鎖優化所做的努力
4.2.1 鎖偏嚮
4.2.2 輕量級鎖
4.2.3 自鏇鎖
4.2.4 鎖消除
4.3 人手一支筆:ThreadLocal
4.3.1 ThreadLocal的簡單使用
4.3.2 ThreadLocal的實現原理
4.3.3 對性能有何幫助
4.4 無鎖
4.4.1 與眾不同的並發策略:比較交換(CAS)
4.4.2 無鎖的綫程安全整數:AtomicInteger
4.4.3 Java中的指針:Unsafe類
4.4.4 無鎖的對象引用:AtomicReference
4.4.5 帶有時間戳的對象引用:AtomicStampedReference
4.4.6 數組也能無鎖:AtomicIntegerArray
4.4.7 讓普通變量也享受原子操作:AtomicIntegerFieldUpdater
4.4.8 挑戰無鎖算法:無鎖的Vector實現
4.4.9 讓綫程之間互相幫助:細看SynchroDusQueue的實現
4.5 有關死鎖的問題
4.6 參考文獻


D5章 並行模式與算法
5.1 探討單例模式
5.2 不變模式
5.3 生産者-消費者模式
5.4 高性能的生産者-消費者:無鎖的實現
5.4.1 無鎖的緩存框架:Disruptor
5.4.2 用Disruptor實現生産者-消費者案例
5.4.3 提高消費者的響應時間:選擇閤適的策略
5.4.4 CPU Cache的優化:解決僞共享問題
5.5 Future模式
5.5.1 Future模式的主要角色
5.5.2 Future模式的簡單實現
5.5.3 JDK中的Future模式
5.6 並行流水綫
5.7 並行搜索
5.8 並行排序
5.8.1 分離數據相關性:奇偶交換排序
5.8.2 改進的插入排序:希爾排序
5.9 並行算法:矩陣乘法
5.10 準備好瞭再通知我:網絡NIO
5.10.1 基於Socket的服務端的多綫程模式
5.10.2 使用NIO進行網絡編程
5.10.3 使用NIO來實現客戶端
5.11 讀完瞭再通知我:AIO
5.11.1 AIO EchoServer的實現
5.11.2 AIO Echo客戶端實現
5.12 參考文獻


D6章 Java 8與並發
6.1 Java 8的函數式編程簡介
6.1.1 函數作為一等公民
6.1.2 無副作用
6.1.3 申明式的(Declarative)
6.1.4 不變的對象
6.1.5 易於並行
6.1.6 更少的代碼
6.2 函數式編程基礎
6.2.1 FunctionalInterface注釋
6.2.2 接口默認方法
6.2.3 lambda錶達式
6.2.4 方法引用
6.3 一步一步走入函數式編程
6.4 並行流與並行排序
6.4.1 使用並行流過濾數據
6.4.2 從集閤得到並行流
6.4.3 並行排序
6.5 增強的Future:CompletableFuture
6.5.1 完成瞭J通知我
6.5.2 異步執行任務
6.5.3 流式調用
6.5.4 CompletableFuture中的異常處理
6.5.5 組閤多個CompletableFuture
6.6 讀寫鎖的改進:StampedLock
6.6.1 StampedLock使用示例
6.6.2 StampedLock的小陷阱
6.6.3 有關StampedLock的實現思想
6.7 原子類的增強
6.7.1 更快的原子類:LongAdder
6.7.2 LongAdder的功能增強版:LongAccumulator
6.8 參考文獻


D7章 使用Akka構建高並發程序
7.1 新並發模型:Actor
7.2 Akka之Hello World
7.3 有關消息投遞的一些說明
7.4 Actor的生命周期
7.5 監督策略
7.6 選擇Actor
7.7 消息收件箱(Inbox)
7.8 消息路由
7.9 Actor的內置狀態轉換
7.10 詢問模式:Actor中的Future
7.11 多個Actor同時修改數據:Agent
7.12 像數據庫一樣操作內存數據:軟件事務內存
……


暫時沒有目錄,請見諒!

實戰Java高並發程序設計 下載 mobi epub pdf txt 電子書 格式

實戰Java高並發程序設計 mobi 下載 pdf 下載 pub 下載 txt 電子書 下載 2024

實戰Java高並發程序設計 下載 mobi pdf epub txt 電子書 格式 2024

實戰Java高並發程序設計 下載 mobi epub pdf 電子書
想要找書就要到 圖書大百科
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!

用戶評價

評分

評分

評分

評分

評分

評分

評分

評分

評分

類似圖書 點擊查看全場最低價

實戰Java高並發程序設計 mobi epub pdf txt 電子書 格式下載 2024


分享鏈接




相關圖書


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

友情鏈接

© 2024 book.teaonline.club All Rights Reserved. 圖書大百科 版權所有