<abbr id="6vcb1"><tfoot id="6vcb1"><output id="6vcb1"></output></tfoot></abbr>

<style id="6vcb1"><u id="6vcb1"><thead id="6vcb1"></thead></u></style>

<sup id="6vcb1"></sup>
  • AQS鎖的原理

    2025-05-15 15:48:04 作者:資訊小編

    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)惠<<

      本文導(dǎo)航
      熱門(mén)文章
      TOP推薦
      相關(guān)閱讀
      點(diǎn)擊加載更多
      一级a做免费大全在线观看_国产三级精品三级男人的天堂_欧美激情二区在线播放_人妻中文字幕无码中出
      <abbr id="6vcb1"><tfoot id="6vcb1"><output id="6vcb1"></output></tfoot></abbr>

      <style id="6vcb1"><u id="6vcb1"><thead id="6vcb1"></thead></u></style>

      <sup id="6vcb1"></sup>
    • 午夜福利视频欧美日韩一区 | 思思久久精品免费视频 | 制服丝袜国产日韩久久 | 亚洲综合中文字幕在线观看 | 中文字幕vs熟女 | 三级乱子国语在线观看 |