AbstractQueuedSynchronizer簡稱AQS,ReentrantLock,ReentrantReadWriteLock,CountDownLatch,Semaphore等等這些鎖都是基於AQS實現的。AQS核心主要實現了鎖的狀態的同步,隊列排隊、喚醒管理,鎖的釋放等底層功能。主要基於state屬性來控制鎖的可用狀態,通過維護一個CLH雙向鏈表隊列來管理併發獲取鎖的線程進行排隊。
ReentrantLock 可重入鎖 字面意思理解為同一線程可以重入加鎖 AbstractQueuedSynchronizer 源碼解析 可以先看這篇文章瞭解AQS原理 內部主要邏輯繼承AQS來實現的,有兩種實現FairSycn、NonfairSync,公平鎖和非公平鎖,默認為非公平鎖。 公平鎖:保證先入隊的先獲得鎖。 非公平鎖:不保證先入隊的先獲得鎖,可能後面的線程先搶到鎖。 主