對於人腦的認知來說,“代碼一行行串行”當然最容易理解。但在多線程下,多個線程的代碼交叉並行,要訪問互斥資源,要互相通信。作為開發者,需要仔細設計線程之間的互斥與同步,稍不留心,就會寫出非線程安全的代碼。正因此,多線程編程一直是一個被廣泛而深入討論的領域!
掃碼就有禮
關注后點擊這里!!暗號博客園,來獲取源碼剖析文檔一份。
今天就來分享一份餓了么架構師純手打的Java並發實現原理:JDK源碼剖析,由於這份筆記的內容過多,小編沒辦法全部為大家展示出來,有不盡完美之處,還望大家多多海涵
第1篇:多線程基礎
線程的優雅關閉
InterruptedException () 函數與interrupt ()函數
synchronized關鍵字
wait () 與notify ()
volatile關鍵字
JMM與happen-before
內存屏障
final關鍵字
綜合應用:無鎖編程




第2篇:Atomic類
AtomicInteger和AtomicLong
AtomicBoolean和AtomicReference
AtomicStampedReference和AtomicMarkableReference
AtomicIntegerFieldUpdater. AtomicL ongFieldUpdater和AtomicReferenceFieldUpdater
AtomicIntegerArray. AtomicLongArray和Atomic ReferenceArray
Striped64與LongAdder




第3篇:Lock與Condition
互斥鎖
讀寫鎖
Condition
StampedLock




第4篇:同步工具類
Semaphore
CountDownLatch
CyclicBarrier
Exchanger
Phaser



第5篇:並發容器
BlockingQueue
BlockingDeque
CopyOnWrite
ConcurrentLinkedQueue/Deque
ConcurrentHashMap
ConcurrentSkipListMap/Set




第6篇:線程池與Future
線程池的實現原理
線程池的類繼承體系
ThreadPoolExector
Callable與Future
ScheduledThreadPoolExecutor
Executors工具類



第7篇:ForkJoinPool
ForkJoinPool用法
核心數據結構
工作竊取隊列
ForkJoinPool狀態控制
Worker線程的阻塞—喚醒機制
任務的提交過程分析
工作竊取算法:任務的執行過程分析
ForkJoinTask的fork/join
ForkJoinPool的優雅關閉




第8篇:CompletableFuture
CompletableFuture用法
四種任務原型
CompletionStage接口
CompletableFuture內部原理
任務的網狀執行:有向無環圖
allOf內部的計算圖分析




總結
相信大家讀完這份筆記后,你將對多線程的原理、各種並發的設計原理有一個全面而深刻的理解!整理不易,煩請多多轉發。