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

Java併發編程之美

  • 作者:翟陸續//薛賓田
  • 出版社:電子工業
  • ISBN:9787121349478
  • 出版日期:2018/11/01
  • 裝幀:平裝
  • 頁數:344
人民幣:RMB 89 元      售價:
放入購物車
加入收藏夾

內容大鋼
    併發編程相比Java中其他知識點的學習門檻較高,從而導致很多人望而卻步。但無論是職場面試,還是高併發/ 高流量系統的實現,卻都離不開併發編程,於是能夠真正掌握併發編程的人成為了市場迫切需求的人才。
    翟陸續、薛賓田著的《Java併發編程之美》通過圖文結合、通俗易懂的講解方式幫助大家完成多線程併發編程從入門到實踐的飛躍!全書分為三部分,第一部分為Java併發編程基礎篇,主要講解Java併發編程的基礎知識、線程有關的知識和併發編程中的其他相關概念,這些知識在高級篇都會有所使用,掌握了本篇的內容,就為學習高級篇奠定了基礎;第二部分為Java併發編程高級篇,講解了Java併發包中核心組件的實現原理,讓讀者知其然,也知其所以然,熟練掌握本篇內容,對我們在日常開發高併發、高流量的系統時會大有裨益;第三部分為Java併發編程實踐篇,主要講解併發組件的使用方法,以及在使用過程中容易遇到的問題和解決方法。
    本書適合Java初級、中高級研發工程師,對Java併發編程感興趣,以及希望探究JUC包源碼原理的人員閱讀。

作者介紹
翟陸續//薛賓田

目錄
第一部分 Java 併發編程基礎篇
  第1章  併發編程線程基礎
    1.1  什麼是線程
    1.2  線程創建與運行
    1.3  線程通知與等待
    1.4  等待線程執行終止的join 方法
    1.5  讓線程睡眠的sleep 方法
    1.6  讓出CPU 執行權的yield 方法
    1.7  線程中斷
    1.8  理解線程上下文切換
    1.9  線程死鎖
      1.9.1  什麼是線程死鎖
      1.9.2  如何避免線程死鎖
    1.10  守護線程與用戶線程
    1.11  ThreadLocal
      1.11.1  ThreadLocal 使用示例
      1.11.2  ThreadLocal 的實現原理
      1.11.3  ThreadLocal 不支持繼承性
      1.11.4  InheritableThreadLocal 類
  第2章  併發編程的其他基礎知識
    2.1  什麼是多線程併發編程
    2.2  為什麼要進行多線程併發編程
    2.3  Java 中的線程安全問題
    2.4  Java 中共享變數的內存可見性問題
    2.5  Java 中的synchronized 關鍵字
      2.5.1  synchronized 關鍵字介紹
      2.5.2  synchronized 的內存語義
    2.6  Java 中的volatile 關鍵字
    2.7  Java 中的原子性操作
    2.8  Java 中的CAS 操作
    2.9  Unsafe 類
      2.9.1  Unsafe 類中的重要方法
      2.9.2  如何使用Unsafe 類
    2.10  Java 指令重排序
    2.11  偽共享
      2.11.1  什麼是偽共享
      2.11.2  為何會出現偽共享
      2.11.3  如何避免偽共享
      2.11.4  小結
    2.12  鎖的概述
      2.12.1  樂觀鎖與悲觀鎖
      2.12.2  公平鎖與非公平鎖
      2.12.3  獨佔鎖與共享鎖
      2.12.4  什麼是可重入鎖
      2.12.5  自旋鎖
    2.13  總結
第二部分 Java 併發編程高級篇
  第3章  Java 併發包中ThreadLocalRandom 類原理剖析
    3.1  Random 類及其局限性
    3.2  ThreadLocalRandom

    3.3  源碼分析
    3.4  總結
  第4章  Java 併發包中原子操作類原理剖析
    4.1  原子變數操作類
    4.2  JDK 8 新增的原子操作類LongAdder
      4.2.1  LongAdder 簡單介紹
      4.2.2  LongAdder 代碼分析
      4.2.3  小結
    4.3  LongAccumulator 類原理探究
    4.4  總結
  第5章  Java 併發包中併發List 源碼剖析
    5.1  介紹
    5.2  主要方法源碼解析
      5.2.1  初始化
      5.2.2  添加元素
      5.2.3  獲取指定位置元素
      5.2.4  修改指定元素
      5.2.5  刪除元素
      5.2.6  弱一致性的迭代器
    5.3  總結
  第6章  Java 併發包中鎖原理剖析
    6.1  LockSupport 工具類
    6.2  抽象同步隊列AQS 概述
      6.2.1  AQS——鎖的底層支持
      6.2.2  AQS——條件變數的支持
      6.2.3  基於AQS 實現自定義同步器
    6.3  獨佔鎖ReentrantLock 的原理
      6.3.1  類圖結構
      6.3.2  獲取鎖
      6.3.3  釋放鎖
      6.3.4  案例介紹
      6.3.5  小結
    6.4  讀寫鎖ReentrantReadWriteLock 的原理
      6.4.1  類圖結構
      6.4.2  寫鎖的獲取與釋放
      6.4.3  讀鎖的獲取與釋放
      6.4.4  案例介紹
      6.4.5  小結
    6.5  JDK 8 中新增的StampedLock 鎖探究
      6.5.1  概述
      6.5.2  案例介紹
      6.5.3  小結
  第7章  Java 併發包中併發隊列原理剖析
    7.1  ConcurrentLinkedQueue 原理探究
      7.1.1  類圖結構
      7.1.2  ConcurrentLinkedQueue 原理介紹
      7.1.3  小結
    7.2  LinkedBlockingQueue 原理探究
      7.2.1  類圖結構
      7.2.2  LinkedBlockingQueue 原理介紹

      7.2.3  小結
    7.3  ArrayBlockingQueue 原理探究
      7.3.1  類圖結構
      7.3.2  ArrayBlockingQueue 原理介紹
      7.3.3  小結
    7.4  PriorityBlockingQueue 原理探究
      7.4.1  介紹
      7.4.2  PriorityBlockingQueue 類圖結構
      7.4.3  原理介紹
      7.4.4  案例介紹
      7.4.5  小結
    7.5  DelayQueue 原理探究
      7.5.1  DelayQueue 類圖結構
      7.5.2  主要函數原理講解
      7.5.3  案例介紹
      7.5.4  小結
  第8章  Java 併發包中線程池ThreadPoolExecutor 原理探究
    8.1  介紹
    8.2  類圖介紹
    8.3  源碼分析
      8.3.1  public void execute(Runnable command)
      8.3.2  工作線程Worker 的執行
      8.3.3  shutdown 操作
      8.3.4  shutdownNow 操作
      8.3.5  awaitTermination 操作
    8.4  總結
  第9章  Java 併發包中ScheduledThreadPoolExecutor 原理探究
    9.1  介紹
    9.2  類圖介紹
    9.3  原理剖析
      9.3.1  schedule(Runnable command, long delay,TimeUnit unit) 方法
      9.3.2  scheduleWithFixedDelay(Runnable command,long initialDelay, long delay,TimeUnit unit) 方法
      9.3.3  scheduleAtFixedRate(Runnable command,long initialDelay,long period,TimeUnit unit) 方法
    9.4  總結
  第10章  Java 併發包中線程同步器原理剖析
    10.1  CountDownLatch 原理剖析
      10.1.1  案例介紹
      10.1.2  實現原理探究
      10.1.3  小結
    10.2  迴環屏障CyclicBarrier 原理探究
      10.2.1  案例介紹
      10.2.2  實現原理探究
      10.2.3  小結
    10.3  信號量Semaphore 原理探究
      10.3.1  案例介紹
      10.3.2  實現原理探究
      10.3.3  小結
    10.4  總結
第三部分 Java 併發編程實踐篇
  第11章  併發編程實踐

    11.1  ArrayBlockingQueue 的使用
      11.1.1  非同步日誌列印模型概述
      11.1.2  非同步日誌與具體實現
      11.1.3  小結
    11.2  Tomcat 的NioEndPoint 中ConcurrentLinkedQueue 的使用
      11.2.1  生產者——Acceptor 線程
      11.2.2  消費者——Poller 線程
      11.2.3  小結
    11.3  併發組件ConcurrentHashMap 使用注意事項
    11.4  SimpleDateFormat 是線程不安全的
      11.4.1  問題復現
      11.4.2  問題分析
      11.4.3  小結
    11.5  使用Timer 時需要注意的事情
      11.5.1  問題的產生
      11.5.2  Timer 實現原理分析
      11.5.3  小結
    11.6  對需要復用但是會被下游修改的參數要進行深複製
      11.6.1  問題的產生
      11.6.2  問題分析
      11.6.3  小結
    11.7  創建線程和線程池時要指定與業務相關的名稱
      11.7.1  創建線程需要有線程名
      11.7.2  創建線程池時也需要指定線程池的名稱
      11.7.3  小結
    11.8  使用線程池的情況下當程序結束時記得調用shutdown 關閉線程池
      11.8.1  問題復現
      11.8.2  問題分析
      11.8.3  小結
    11.9  線程池使用FutureTask 時需要注意的事情
      11.9.1  問題復現
      11.9.2  問題分析
      11.9.3  小結
    11.10  使用ThreadLocal 不當可能會導致內存泄漏
      11.10.1  為何會出現內存泄漏
      11.10.2  在線程池中使用ThreadLocal 導致的內存泄漏
      11.10.3  在Tomcat 的Servlet 中使用ThreadLocal 導致內存泄漏
      11.10.4  小結
    11.11  總結

  • 商品搜索:
  • | 高級搜索
首頁新手上路客服中心關於我們聯絡我們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