[21 更高級的鎖—深入解析Lock](21%E6%9B%B4%E9%AB%98%E7%BA%A7%E7%9A%84%E9%94%81%E2%80%94%E6%B7%B1%E5%85%A5%E8%A7%A3%E6%9E%90Lock.md)
[22 到底哪把鎖更適合你?—synchronized與ReentrantLock對比](22%E5%88%B0%E5%BA%95%E5%93%AA%E6%8A%8A%E9%94%81%E6%9B%B4%E9%80%82%E5%90%88%E4%BD%A0%EF%BC%9F%E2%80%94synchronized%E4%B8%8EReentrantLock%E5%AF%B9%E6%AF%94.md)
[23 按需上鎖—ReadWriteLock詳解](23%E6%8C%89%E9%9C%80%E4%B8%8A%E9%94%81%E2%80%94ReadWriteLock%E8%AF%A6%E8%A7%A3.md)
[24 經典并發容器,多線程面試必備—深入解析ConcurrentHashMap上](24%E7%BB%8F%E5%85%B8%E5%B9%B6%E5%8F%91%E5%AE%B9%E5%99%A8%EF%BC%8C%E5%A4%9A%E7%BA%BF%E7%A8%8B%E9%9D%A2%E8%AF%95%E5%BF%85%E5%A4%87%E2%80%94%E6%B7%B1%E5%85%A5%E8%A7%A3%E6%9E%90ConcurrentHashMap%E4%B8%8A.md)
[25 經典并發容器,多線程面試必備—深入解析ConcurrentHashMap下](25%E7%BB%8F%E5%85%B8%E5%B9%B6%E5%8F%91%E5%AE%B9%E5%99%A8%EF%BC%8C%E5%A4%9A%E7%BA%BF%E7%A8%8B%E9%9D%A2%E8%AF%95%E5%BF%85%E5%A4%87%E2%80%94%E6%B7%B1%E5%85%A5%E8%A7%A3%E6%9E%90ConcurrentHashMap%E4%B8%8B.md)
[26不讓我進門,我就在門口一直等!—BlockingQueue和ArrayBlockingQueue](26%E4%B8%8D%E8%AE%A9%E6%88%91%E8%BF%9B%E9%97%A8%EF%BC%8C%E6%88%91%E5%B0%B1%E5%9C%A8%E9%97%A8%E5%8F%A3%E4%B8%80%E7%9B%B4%E7%AD%89%EF%BC%81%E2%80%94BlockingQueue%E5%92%8CArrayBlockingQueue.md)
[27 倒數計時開始,三、二、一—CountDownLatch詳解](27%E5%80%92%E6%95%B0%E8%AE%A1%E6%97%B6%E5%BC%80%E5%A7%8B%EF%BC%8C%E4%B8%89%E3%80%81%E4%BA%8C%E3%80%81%E4%B8%80%E2%80%94CountDownLatch%E8%AF%A6%E8%A7%A3.md)
[28 人齊了,一起行動—CyclicBarrier詳解](28%E4%BA%BA%E9%BD%90%E4%BA%86%EF%BC%8C%E4%B8%80%E8%B5%B7%E8%A1%8C%E5%8A%A8%E2%80%94CyclicBarrier%E8%AF%A6%E8%A7%A3.md)
[29 一手交錢,一手交貨—Exchanger詳解](29%E4%B8%80%E6%89%8B%E4%BA%A4%E9%92%B1%EF%BC%8C%E4%B8%80%E6%89%8B%E4%BA%A4%E8%B4%A7%E2%80%94Exchanger%E8%AF%A6%E8%A7%A3.md)
[30 限量供應,不好意思您來晚了—Semaphore詳解](30%E9%99%90%E9%87%8F%E4%BE%9B%E5%BA%94%EF%BC%8C%E4%B8%8D%E5%A5%BD%E6%84%8F%E6%80%9D%E6%82%A8%E6%9D%A5%E6%99%9A%E4%BA%86%E2%80%94Semaphore%E8%AF%A6%E8%A7%A3.md)
- 前言
- 第1章 Java并發簡介
- 01 開篇詞:多線程為什么是你必需要掌握的知識
- 02 絕對不僅僅是為了面試—我們為什么需要學習多線程
- 03 多線程開發如此簡單—Java中如何編寫多線程程序
- 04 人多力量未必大—并發可能會遇到的問題
- 第2章 Java中如何編寫多線程
- 05 看若兄弟,實如父子—Thread和Runnable詳解
- 06 線程什么時候開始真正執行?—線程的狀態詳解
- 07 深入Thread類—線程API精講
- 08 集體協作,什么最重要?溝通!—線程的等待和通知
- 09 使用多線程實現分工、解耦、緩沖—生產者、消費者實戰
- 第3章 并發的問題和原因詳解
- 10 有福同享,有難同當—原子性
- 11 眼見不實—可見性
- 12 什么?還有這種操作!—有序性
- 13 問題的根源—Java內存模型簡介
- 14 僵持不下—死鎖詳解
- 第4章 如何解決并發問題
- 15 原子性輕量級實現—深入理解Atomic與CAS
- 16 讓你眼見為實—volatile詳解
- 17 資源有限,請排隊等候—Synchronized使用、原理及缺陷
- 18 線程作用域內共享變量—深入解析ThreadLocal
- 第5章 線程池
- 19 自己動手豐衣足食—簡單線程池實現
- 20 其實不用造輪子—Executor框架詳解
- 第6章 主要并發工具類
- 21 更高級的鎖—深入解析Lock
- 22 到底哪把鎖更適合你?—synchronized與ReentrantLock對比
- 23 按需上鎖—ReadWriteLock詳解
- 24 經典并發容器,多線程面試必備—深入解析ConcurrentHashMap上
- 25 經典并發容器,多線程面試必備—深入解析ConcurrentHashMap下
- 26不讓我進門,我就在門口一直等!—BlockingQueue和ArrayBlockingQueue
- 27 倒數計時開始,三、二、一—CountDownLatch詳解
- 28 人齊了,一起行動—CyclicBarrier詳解
- 29 一手交錢,一手交貨—Exchanger詳解
- 30 限量供應,不好意思您來晚了—Semaphore詳解
- 第7章 高級并發工具類及并發設計模式
- 31 憑票取餐—Future模式詳解
- 32 請按到場順序發言—Completion Service詳解
- 33 分階段執行你的任務-學習使用Phaser運行多階段任務
- 34 誰都不能偷懶-通過 CompletableFuture 組裝你的異步計算單元
- 35 拆分你的任務—學習使用Fork/Join框架
- 36 為多線程們安排一位經理—Master/Slave模式詳解
- 第8章 總結
- 37 結束語