重大發現,AQS加鎖機制竟然跟Synchronized有驚人的相似( 二 )


3. 總結AQS跟Synchronized的加鎖流程是一樣的,都是通過同步隊列和條件隊列實現的,阻塞狀態的線程被放到同步隊列中,等待狀態的線程被放到條件隊列中,從條件隊列喚醒的線程又被轉移到同步隊列末尾 , 一塊競爭鎖 。
看完AQS加鎖流程,還沒有人不懂AQS的?
下篇文章再講一下AQS加鎖具體的源碼實現 。里面有很多精巧的設計,值得我們學習 。
比如:
為什么同步隊列要設計成雙向鏈表?而條件隊列要設計成單鏈表?
為什么AQS加鎖性能這么好(樂觀鎖CAS使用)?
同步隊列和條件隊列中節點怎么用一個對象實現?
釋放鎖后,怎么喚醒同步隊列中線程?

我是「一燈架構」,如果本文對你有幫助,歡迎各位小伙伴點贊、評論和關注,感謝各位老鐵,我們下期見

重大發現,AQS加鎖機制竟然跟Synchronized有驚人的相似

文章插圖
【重大發現,AQS加鎖機制竟然跟Synchronized有驚人的相似】

推薦閱讀