文章目錄
-
- 一、什麼是AQS
- 二、AQS的原理
- 三、state:狀态
- 四、AQS共享資源的方式:獨占式和共享式
一、什麼是AQS
AQS(Abstract Queued Synchronizer)是一個抽象的隊列同步器,通過維護一個共享資源狀态(Volatile Int State)和一個先進先出(FIFO)的線程等待隊列來實作一個多線程通路共享資源的同步架構。
二、AQS的原理
AQS為每個共享資源都設定一個共享資源鎖,線程在需要通路共享資源時首先需要擷取共享資源鎖,如果擷取到了共享資源鎖,便可以在目前線程中使用該共享資源,如果擷取不到,則将該線程放入線程等待隊列,等待下一次資源排程,具體的流程如圖3-14所示。
許多同步類的實作都依賴于AQS,例如常用的ReentrantLock、Semaphore和Count