并發(fā)編程是Java語言的重要特性之一污桦,在Java平臺上提供了許多基本的并發(fā)功能來輔助開發(fā)多線程應(yīng)用程序植影。然而研铆,這些相對底層的并發(fā)功能與上層應(yīng)用程序的并發(fā)語義之間并不存在一種簡單而直觀的映射關(guān)系拌汇。因此瞧预,如何在Java并發(fā)應(yīng)用程序中正確且高效地使用這些功能就成了Java開發(fā)人員的關(guān)注重點艺谆。尤其是在現(xiàn)今業(yè)務(wù)需求量日漸增大的情況下榨惰,理解并發(fā)編程更是顯得尤為重要。
序
對技術(shù)人員來說静汤,我們對技術(shù)的態(tài)度不能只是“知其然”读串,更要做到“知其所以然”。如果要真正理解一項技術(shù)撒妈,分析源碼是最直觀且最有效的方式恢暖。本專題是筆者在之前閱讀 java.util.concurrent 包源碼時做的一些筆記,在閑暇時間整理了一下分享出來狰右,希望對大家有所幫助杰捂。如果大家對此專題文章有任何疑問,歡迎留言提出棋蚌,如果你發(fā)現(xiàn)文章中理解有誤的地方嫁佳,也歡迎大家留言指正。
在開始本專題之前谷暮,你首先需要了解的知識:
- 線程基礎(chǔ)知識:線程安全性蒿往、鎖等
- Java內(nèi)存模型
- 使用過 java.util.concurrent 相關(guān)類
目錄
必讀篇
JUC鎖篇
JUC源碼分析-JUC鎖(二):ReentrantReadWriteLock
JUC源碼分析-JUC鎖(三):CountDownLatch
集合篇
JUC源碼分析-集合篇(一):ConcurrentHashMap
JUC源碼分析-集合篇(二):CopyOnWriteArrayList和CopyOnWriteArraySet
JUC源碼分析-集合篇(三):ConcurrentSkipListMap和ConcurrentSkipListSet
JUC源碼分析-集合篇(四):ConcurrentLinkedQueue
JUC源碼分析-集合篇(五):ConcurrentLinkedDeque
JUC源碼分析-集合篇(六):LinkedTransferQueue
JUC源碼分析-集合篇(七):PriorityBlockingQueue
JUC源碼分析-集合篇(八):SynchronousQueue
JUC源碼分析-集合篇(九):LinkedBlockingQueue
線程池篇
JUC源碼分析-線程池篇(一):ThreadPoolExecutor
JUC源碼分析-線程池篇(三):ScheduledThreadPoolExecutor