什麼是AQS
AQS是一個用來構建鎖和同步器的框架,比如 ReentrantLock(獨佔鎖)、FutureTask(在 JDK 8之前使用AQS實現,8開始修改爲state和stack完成)、CountDownLatch(共享鎖) 等都是基於 AQS 來實現的。
AbstractQueuedSynchronizer原理的簡單介紹
內部使用 自旋(讓線程等待)、CAS(保證對狀態位操作的原子性)、LockSupport(阻塞或啓用線程)、CLH雙向鏈表(保留阻塞線程)來構建了上層的邏輯框架,將部分變化的內容交由子類處理,構建適合不同場景的悲觀、樂觀鎖。