AQS鎖的原理
aqs原理:是一個(gè)用于構(gòu)建鎖和同步器的框架,它能降低構(gòu)建鎖和同步器的工作量,還可以避免處理多個(gè)位置上發(fā)生的競(jìng)爭(zhēng)問(wèn)題,在基于AQS構(gòu)建的同步器中,只可能在一個(gè)時(shí)刻發(fā)生阻塞,從而降低上下文切換的開(kāi)銷(xiāo),并提高吞吐量。
通過(guò)status標(biāo)識(shí)鎖 ReentrantLock使用排他鎖。AQS的status0表示加鎖,thread是當(dāng)前獲取鎖的線程。該鎖時(shí)可重入鎖,所以status0。CountDownLatch 使用共享鎖。
它繼承了AQS框架的內(nèi)部類(lèi),實(shí)現(xiàn)了插銷(xiāo)式同步器的具體功能。在Sync類(lèi)內(nèi)部,有兩個(gè)重要的內(nèi)部類(lèi)NonfairSync和FairSync,它們分別實(shí)現(xiàn)了非公平鎖和公平鎖的具體實(shí)現(xiàn)。
首先嘗試獲取資源,如果當(dāng)前狀態(tài)為0,表示沒(méi)有線程占有鎖,設(shè)置該線程為獨(dú)占模式,使用CAS設(shè)置狀態(tài),否則如果當(dāng)前線程和獨(dú)占線程是一個(gè)線程,修改狀態(tài)值,否則返回false。
當(dāng)?shù)谝淮握{(diào)用await()對(duì)線程進(jìn)行阻塞時(shí),當(dāng)前線程會(huì)首先調(diào)用park()進(jìn)入阻塞,并且加入到條件等待隊(duì)列中。當(dāng)某個(gè)線程調(diào)用此Condition對(duì)象的signal時(shí),等待隊(duì)列中的firstWaiter(第一個(gè)阻塞對(duì)象)會(huì)被加入到AQS鎖的CLH隊(duì)列中。
>>點(diǎn)擊查看今日優(yōu)惠<<
-
1吉利銀河全新大六座SUV諜照曝光 搭載千里浩瀚高階智駕
- 2國(guó)軒高科將發(fā)布全新高安全固態(tài)電池 能量密度達(dá)300Wh/kg
- 3領(lǐng)克900 2.0T Ultra正式開(kāi)啟交付 成為首款搭載Thor芯片的量產(chǎn)車(chē)
- 4領(lǐng)克10 EM-P諜照曝光 搭載四驅(qū)動(dòng)力 領(lǐng)克07車(chē)主饞哭了!
- 5造型頗具跑味 全新小鵬P7預(yù)告圖發(fā)布
- 6哪吒汽車(chē)被申請(qǐng)破產(chǎn)審查 申請(qǐng)人為廣告公司
- 7國(guó)產(chǎn)版Cybertruck? 廣汽領(lǐng)程GAC PICKUP 01量產(chǎn)版將于2027年上市
- 8索賠1000萬(wàn)元! 阿維塔法務(wù)部正式起訴博主“蘇黎世貝勒爺”
TOP推薦相關(guān)閱讀點(diǎn)擊加載更多熱門(mén)搜索 熱門(mén)IT產(chǎn)品 最新車(chē)系午夜福利视频欧美日韩一区 | 思思久久精品免费视频 | 制服丝袜国产日韩久久 | 亚洲综合中文字幕在线观看 | 中文字幕vs熟女 | 三级乱子国语在线观看 | - 2國(guó)軒高科將發(fā)布全新高安全固態(tài)電池 能量密度達(dá)300Wh/kg