幫助中心 | 我的帳號 | 關於我們

深入理解Java併發

  • 作者:編者:曹亮//鄭程|責編:鄭楠
  • 出版社:中國水利水電
  • ISBN:9787522612669
  • 出版日期:2023/05/01
  • 裝幀:平裝
  • 頁數:363
人民幣:RMB 89 元      售價:
放入購物車
加入收藏夾

內容大鋼
    本書系統化地分析和介紹了Java併發領域,全書共12章,可分為四個部分。第一部分為併發概述(第1章),這部分介紹併發的發展歷史,激發讀者對併發學習的熱情。第二部分為Java基礎原理(第2?3章),這部分介紹了併發模型的基礎理論知識。第三部分為併發工具(第4?7章),這部分不僅從源碼實現的原理上分析j.u.c包中提供的Java併發工具,還對組件的設計方式進行了探索。第四部分為Java實踐(第8?12章),這部分深入淺出地分析了開源常見的併發框架,學習這部分知識可進一步提升併發編程的效率。
    本書適用於對Java基礎知識有一定的掌握,渴望深入學習Java併發進階知識的開發者;也適用於渴求成功進入大型互聯網公司的開發者;還適用於對Java併發以及併發組件設計模式感興趣的開發者。

作者介紹
編者:曹亮//鄭程|責編:鄭楠

目錄
第一部分  併發概述
  第1章  走近併發
    1.1  併發歷史
      1.1.1  摩爾定律
      1.1.2  多核計算的趨勢
    1.2  併發編程基礎
      1.2.1  併發編程的使用場景
      1.2.2  併發的優缺點
      1.2.3  常見概念解析
    1.3  線程的生命周期
      1.3.1  使用API新建線程
      1.3.2  操作系統中的線程模至
      1.3.3  Java線程實現的底層原理剖析
      1.3.4  線程的狀態轉換
      1.3.5  線程的基本操作
    1.4  Daemon守護線程
    1.5  線程組
    1.6  本章小結
第二部分  Java基礎原理
  第2章  JMM內存模型以及happens-before規則
    2.1  JMM內存模型
      2.1.1  JMM簡介
      2.1.2  JMM共享內存的通信機制
    2.2  happens-before規則
      2.2.1  重排序
      2.2.2  as-if-serial語義
      2.2.3  happens-before
    2.3  本章小結
  第3章  Java併發關鍵字
    3.1  深入理解synchronized
      3.1.1  synchronized簡介
      3.1.2  synchronized實現原理
      3.1.3  CAS操作
      3.1.4  Java對象頭
      3.1.5  synchronized優化
      3.1.6  具體示例
    3.2  volatile解析
      3.2.1  volatile簡介
      3.2.2  volatile實現原理
      3.2.3  volatile的happens-before關係
      3.2.4  volatile的內存語義
    3.3  三大性質總結:原子性、有序性和可見性
      3.3.1  原子性
      3.3.2  有序性
      3.3.3  可見性
    3.4  本章小結
第三部分  併發工具
  第4章  解密Lock體系
    4.1  初識Lock體系與Abstract QueuedSynchronizer
      4.1.1  concurrent體系

      4.1.2  Lock簡介
      4.1.3  自定義同步組件實現示例
    4.2  深入理解AbstractQueuedSynchronizer
      4.2.1  AbstractQueuedSynchronizer簡介
      4.2.2  同步隊列
      4.2.3  獨佔鎖
      4.2.4  共享鎖
    4.3  深入理解ReentrantLock
      4.3.1  重入性的實現原理
      4.3.2  公平鎖與非公平鎖
      4.3.3  公平鎖與非公平鎖的比較
    4.4  深入理解ReentrantReadWriteLock
      4.4.1  讀寫鎖的介紹
      4.4.2  寫鎖詳解
      4.4.3  讀鎖詳解
      4.4.4  鎖降級
    4.5  condition等待通知機制
      4.5.1  condition簡介
      4.5.2  condition實現原理分析
      4.5.3  signal/signalAll實現原理
    4.6  LockSupport工具
      4.6.1  LockSupport簡介
      4.6.2  LockSupport中的方法
      4.6.3  使用示例
    4.7  本章小結
  第5章  深入解析併發容器
    5.1  深入解析ConcurrentHashMap
      5.1.1  ConcurrentHashMap簡介
      5.1.2  關鍵屬性及類
      5.1.3  CAS相關操作
      5.1.4  深入分析核心方法
      5.1.5  總結
    5.2  CopyOn WriteArrayList詳解
      5.2.1  CopyOnWriteArrayList簡介
      5.2.2  COW的設計思想
      5.2.3  CopyOnWriteArrayList實現原理
      5.2.4  總結
    5.3  ConcurrentLinkedQueue解析
      5.3.1  ConcurrentLinkedQueue簡介
      5.3.2  offer()方法
      5.3.3  poll()方法
      5.3.4  HOPS的設計
    5.4  ThreadLocal分析
      5.4.1  ThreadLocal簡介
      5.4.2  ThreadLocal實現原理
      5.4.3  ThreadLocalMap詳解
      5.4.4  ThreadLocal的使用場景
    5.5  ThreadLocal內存泄漏問題分析
      5.5.1  造成內存泄漏的原因
      5.5.2  已經做出改進

      5.5.3  使用弱引用的原因
      5.5.4  Thread.exit()
      5.5.5  ThreadLocal最佳實踐
    5.6  阻塞隊列
      5.6.1  阻塞隊列簡介
      5.6.2  基本操作
      5.6.3  常用的BlockingQueue
    5.7  ArrayBlockingQueue與LinkedBlockingQueue
      5.7.1  ArrayBlockingQueue簡介
      5.7.2  ArrayBlockingQueue實現原理
      5.7.3  LinkedBlockingQueue實現原理
      5.7.4  ArrayBlockingQueue與LinkedBlockingQueue的比較
      5.7.5  LinkedBlockingQueue與ConcurrentLinkedQueue的比較
    5.8  本章小結
  第6章  Executor體系
    6.1  線程池之ThreadPoolExecutor
      6.1.1  線程池簡介
      6.1.2  線程池的工作原理
      6.1.3  線程池的創建
      6.1.4  線程池的關閉
      6.1.5  合理配置線程池參數
    6.2  線程池之ScheduledThreadPoolExecutor
      6.2.1  ScheduledThreadPoolExecutor簡介
      6.2.2  可周期性執行的任務ScheduledFutureTask
      6.2.3  DelayedWorkQueue
      6.2.4  ScheduledThreadPoolExecutor的執行過程
    6.3  FutureTask
      6.3.1  FutureTask簡介
      6.3.2  FutureTask的使用
    6.4  本章小結
  第7章  原子操作類
    7.1  CAS比較與交換
      7.1.1  CAS與synchronized的性能對比
      7.1.2  CAS的問題
      7.1.3  Unsafe
    7.2  Atomic原子操作類
      7.2.1  原子更新基本類型
      7.2.2  原子更新數組類型
      7.2.3  原子更新引用類型
      7.2.4  原子更新欄位類型
    7.3  累加器
      7.3.1  LongAdder概述
      7.3.2  LongAdder和AtomicLong性能對比
      7.3.3  LongAdder源碼解析
      7.3.4  LongAdder實踐案例
    7.4  本章小結
第四部分  Java實踐
  第8章  併發工具
    8.1  CountDownLatch
      8.1.1  CountDownLatch的使用場景

      8.1.2  CountDownLatch的實現原理
    8.2  CyclicBarrier
      8.2.1  CyclicBarrier的使用場景
      8.2.2  CyclicBarrier的實現原理
      8.2.3  CountDownLatch與CyclicBarrier的比較
    8.3  Semaphore
      8.3.1  Semaphore的使用場景
      8.3.2  Semaphore的實現原理
      8.3.3  Semaphore和RateLimiter的區別
    8.4  Exchanger
      8.4.1  Exchanger的使用場景
      8.4.2  Exchanger的實現原理
    8.5  本章小結
  第9章  併發模式
    9.1  單例模式
      9.1.1  餓漢式
      9.1.2  懶漢式
      9.1.3  雙重check
      9.1.4  內部靜態類
      9.1.5  枚舉
    9.2  不可變模式
      9.2.1  不可變模式的設計
      9.2.2  不可變模式注意點
    9.3  寫時複製模式
    9.4  線程本地存儲模式
      9.4.1  ThreadLocal
      9.4.2  InheritableThreadLocal
    9.5  Thread-Pre-Message模式
    9.6  Worker Thread模式
    9.7  Producer-Consumer模式
    9.8  本章小結
  第10章  併發優化
    10.1  提升鎖的性能
      10.1.1  鎖粒度優化
      10.1.2  鎖持有時間優化
      10.1.3  鎖分離
    10.2  虛擬機對鎖優化
      10.2.1  自旋鎖
      10.2.2  鎖消除
      10.2.3  鎖粗化
    10.3  線程上下文切換優化
      10.3.1  線程上下文切換
      10.3.2  樂觀鎖替換競爭鎖
      10.3.3  減少垃圾回收增加的「次數」
      10.3.4  設置合理的線程池大小
    10.4  本章小結
  第11章  併發框架
    11.1  Disruptor
      11.1.1  Disruptor簡介
      11.1.2  Disruptor示例

      11.1.3  Disruptor原理
    11.2  Akka
      11.2.1  Akka簡介
      11.2.2  Akka示例
      11.2.3  Akka原理
    11.3  本章小結
  第12章  線程池在各大框架中的運用
    12.1  Tomcat中的線程池
      12.1.1  Tomcat的總體架構
      12.1.2  Tomcat線程池原理
    12.2  Dubbo中的線程池
      12.2.1  Dubbo簡介
      12.2.2  消費者的線程池模型
      12.2.3  提供者的線程池模型
    12.3  Netty中的線程池
      12.3.1  Reactor線程模型
      12.3.2  EventLoopGroup線程池
    12.4  本章小結
參考文獻

  • 商品搜索:
  • | 高級搜索
首頁新手上路客服中心關於我們聯絡我們Top↑
Copyrightc 1999~2008 美商天龍國際圖書股份有限公司 臺灣分公司. All rights reserved.
營業地址:臺北市中正區重慶南路一段103號1F 105號1F-2F
讀者服務部電話:02-2381-2033 02-2381-1863 時間:週一-週五 10:00-17:00
 服務信箱:bookuu@69book.com 客戶、意見信箱:cs@69book.com
ICP證:浙B2-20060032