- Java多線程并發體系實戰(微課視頻版)
- 劉寧萌編著
- 1184字
- 2024-12-27 21:11:11
前言
2005年左右民用的多核CPU正式進入市場,標志著一個新時代來臨了。雙核和多核處理器設計用于在一枚處理器中集成兩個或多個完整執行內核,以支持同時執行并管理多個任務。以前的單核CPU相當于一個人工作,它有很多任務,并很快地在任務之間切換工作,給人們造成的感覺好像是同時在執行,例如我上了一個聊天軟件,我又在打游戲,感覺好像在同時執行,實際上單核CPU只是很快速地在各個任務之間切換工作,而多核心CPU相當于有多個人在同時工作,這才是真正意義上的多核心同時工作,當然它們也會在各個任務之間切換調度。
Java的多線程Thread核心類早在JDK 1.0就已經有了,從一開始就確立了Java最基礎的線程模型,并且這樣的線程模型在后續的修補中,并未發生實質上的變更,可以說是一個具有傳承性的良好設計。
隨著多核CPU的到來,在2004年發布的JDK 1.5中加入了Executors線程池、Callable、Future異步任務支持、Lock鎖、concurrent并發包下的大量工具類,標志著Java多線程的時代來臨了。
本書特點
本書以JDK 17長期維護版本為示例,詳細地介紹了與Java多線程并發相關的知識體系,讓讀者不僅知其然,而且知其所以然。本書對多線程相關的理論分門別類、層層遞進地進行詳細敘述和透徹分析,既體現了各知識點之間的聯系,又兼顧了其漸進性。本書在介紹每個知識點時都給出了該知識點的應用場景,同時配合代碼演示,讓讀者更能明白其實現原理、使用方式。本書豐富的免費配套資源包括源代碼、筆記、完整的配套視頻。
本書主要內容
第1章介紹了Thread線程對象的創建方式、啟動方式、常用方法、優先級、守護線程。
第2章介紹了ThreadGroup線程組的概念、線程對象構造器、線程類常用方法、線程對象異常捕獲、等待線程對象銷毀、線程對象的優雅關閉。
第3章介紹了線程之間的協作,synchronized對象鎖、線程死鎖的產生、Object對象監視器、線程阻塞等待機制、線程喚醒機制、線程可見性、重排序、線程生命周期狀態。
第4章介紹了ThreadLocal線程局部變量的使用、實現機制的核心概念、Reference弱引用。
第5章介紹了Lock鎖接口的相關規范,以及ReentrantLock、Condition、ReentrantReadWriteLock。
第6章介紹了atomic原子包、AtomicBoolean、AtomicInteger、AtomicReference、AtomicIntegerFieldUpdater、AtomicIntegerArray、LongAdder。
第7章介紹了BlockingQueue接口的相關規范,及其核心實現類ArrayBlockingQueue、LinkedBlockingQueue、LinkedTransferQueue、SynchronousQueue、PriorityBlockingQueue、DelayQueue。
第8章介紹了ThreadPoolExecutor線程池整個鏈路的串聯、ThreadPoolExecutor線程池的使用,源碼分析其核心概念、FutureTask的核心概念、AbstractExecutorService的使用、ScheduledThreadPoolExecutor定時器的使用,源碼分析其核心概念。
第9章介紹了線程同步器的使用、CountDownLatch、CyclicBarrier、Semaphore、Phaser。
第10章介紹了AbstractQueuedSynchronizer框架,詳細分析了其源碼,利用官方文檔示例實現自己的同步鎖、同步器。
讀者對象
所有對Java多線程感興趣的軟件開發人員。
資源下載提示
素材(源碼)等資源:掃描目錄上方的二維碼下載。
視頻等資源:掃描封底的文泉云盤防盜碼,再掃描書中相應章節中的二維碼,可以在線學習。
致謝
特別感謝清華大學出版社的趙佳霓編輯。感謝她對本書專業且高效的審閱及對本書提出的建設性意見,有效推動了本書的出版。同時也感謝參與本書出版的所有人員,在大家的辛勤努力下,才有了本書的順利出版。
劉寧萌
2023年2月
- Learning C# by Developing Games with Unity 2020
- Mastering SVG
- Raspberry Pi Networking Cookbook(Second Edition)
- Ext JS Data-driven Application Design
- Java程序員面試算法寶典
- 青少年Python編程入門
- Spring Boot Cookbook
- R Data Analysis Cookbook(Second Edition)
- Learning Probabilistic Graphical Models in R
- Java Fundamentals
- 快速入門與進階:Creo 4·0全實例精講
- 計算機應用基礎教程(Windows 7+Office 2010)
- 從程序員角度學習數據庫技術(藍橋杯軟件大賽培訓教材-Java方向)
- Sitecore Cookbook for Developers
- Building a Media Center with Raspberry Pi