AQS鎖的原理
2025-05-15 15:48:04
作者:資訊小編
aqs原理:是一個用于構建鎖和同步器的框架,它能降低構建鎖和同步器的工作量,還可以避免處理多個位置上發生的競爭問題,在基于AQS構建的同步器中,只可能在一個時刻發生阻塞,從而降低上下文切換的開銷,并提高吞吐量。
通過status標識鎖 ReentrantLock使用排他鎖。AQS的status0表示加鎖,thread是當前獲取鎖的線程。該鎖時可重入鎖,所以status0。CountDownLatch 使用共享鎖。
它繼承了AQS框架的內部類,實現了插銷式同步器的具體功能。在Sync類內部,有兩個重要的內部類NonfairSync和FairSync,它們分別實現了非公平鎖和公平鎖的具體實現。
首先嘗試獲取資源,如果當前狀態為0,表示沒有線程占有鎖,設置該線程為獨占模式,使用CAS設置狀態,否則如果當前線程和獨占線程是一個線程,修改狀態值,否則返回false。
當第一次調用await()對線程進行阻塞時,當前線程會首先調用park()進入阻塞,并且加入到條件等待隊列中。當某個線程調用此Condition對象的signal時,等待隊列中的firstWaiter(第一個阻塞對象)會被加入到AQS鎖的CLH隊列中。
>>點擊查看今日優惠<<
本文導航
熱門文章