AQS(AbstractQueuedSynchronizer) 底層實現介紹

什麼是AQS

  AQS是一個用來構建鎖和同步器的框架,比如 ReentrantLock(獨佔鎖)、FutureTask(在 JDK 8之前使用AQS實現,8開始修改爲state和stack完成)、CountDownLatch(共享鎖) 等都是基於 AQS 來實現的。

AbstractQueuedSynchronizer原理的簡單介紹

內部使用 自旋(讓線程等待)、CAS(保證對狀態位操作的原子性)、LockSupport(阻塞或啓用線程)、CLH雙向鏈表(保留阻塞線程)來構建了上層的邏輯框架,將部分變化的內容交由子類處理,構建適合不同場景的悲觀、樂觀鎖。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章