内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

Java之AQS-創(chuàng)新互聯(lián)

AQS是什么

是用來實(shí)現(xiàn)鎖或者其它同步器組件的公共基礎(chǔ)部分的抽象實(shí)現(xiàn),整體就是一個(gè)抽象的FIFO隊(duì)列來完成資源獲取線程的安排工作,并通過一個(gè)int類變量表示持有鎖的狀態(tài)。
在這里插入圖片描述
在這里插入圖片描述

創(chuàng)新互聯(lián)公司成立以來不斷整合自身及行業(yè)資源、不斷突破觀念以使企業(yè)策略得到完善和成熟,建立了一套“以技術(shù)為基點(diǎn),以客戶需求中心、市場為導(dǎo)向”的快速反應(yīng)體系。對公司的主營項(xiàng)目,如中高端企業(yè)網(wǎng)站企劃 / 設(shè)計(jì)、行業(yè) / 企業(yè)門戶設(shè)計(jì)推廣、行業(yè)門戶平臺運(yùn)營、成都App制作、手機(jī)網(wǎng)站制作、微信網(wǎng)站制作、軟件開發(fā)、內(nèi)江機(jī)房主機(jī)托管等實(shí)行標(biāo)準(zhǔn)化操作,讓客戶可以直觀的預(yù)知到從創(chuàng)新互聯(lián)公司可以獲得的服務(wù)效果。使用到AQS的一些類

在這里插入圖片描述
ReentranLock:
在這里插入圖片描述
CountDownLatch
在這里插入圖片描述
ReentrantReadWriteLock:
在這里插入圖片描述
Semaphore
在這里插入圖片描述

搶到資源的線程直接使用處理業(yè)務(wù),搶不到資源的必然涉及一種排隊(duì)等候機(jī)制。搶占資源失敗的線程繼續(xù)去等待(類似銀行業(yè)務(wù)辦理窗口都滿了,暫時(shí)沒有受理窗口的顧客只能去候客區(qū)排隊(duì)等候),但等候線程仍然保留獲取鎖的可能且獲取鎖流程仍在繼續(xù)(候客區(qū)的顧客也在等著叫號,輪到了再去受理窗口辦理業(yè)務(wù))
如果共享資源被占用,就需要一定的阻塞等待喚醒機(jī)制來保證鎖分配。這個(gè)機(jī)制主要用的是CLH隊(duì)列的變體實(shí)現(xiàn)的,將暫時(shí)獲取不到的鎖的線程加入到隊(duì)列中,這個(gè)隊(duì)列就是AQS同步隊(duì)列的抽象表現(xiàn)。它將要請求共享資源的線程及自身的等待狀態(tài)封裝成隊(duì)列的結(jié)點(diǎn)對象(Node),通過CAS、自旋以及LockSupport.park()的方式,維護(hù)state變量的狀態(tài),使并發(fā)達(dá)到同步的效果。

源碼說明:

在這里插入圖片描述

AQS同步隊(duì)列的基本結(jié)構(gòu):

在這里插入圖片描述
在這里插入圖片描述

AQS內(nèi)部體系結(jié)構(gòu)

在這里插入圖片描述

AQS的內(nèi)部類Node中的屬性說明

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

從ReentrantLock解讀AQS的源碼:

在這里插入圖片描述

第一步:
在這里插入圖片描述

第二步:創(chuàng)建的是公平鎖還是非公平鎖
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

第三:以非公平鎖ReentrantLock()為例作為突破走起,方法lock()
對比公平鎖和非公平鎖的tryAcquire()方法的實(shí)現(xiàn)代碼,其實(shí)差別就在于非公平鎖獲取鎖時(shí)公平鎖中少了一個(gè)判斷!hasQueuedPredecessors(),此方法中判斷了是否需要排隊(duì),導(dǎo)致公平鎖和非公平鎖的差異如下:
公平鎖:公平鎖講究先來先到,線程在獲取鎖時(shí),如果這個(gè)鎖的等待隊(duì)列中已經(jīng)有線程在等待,那么當(dāng)前線程就會進(jìn)入等待隊(duì)列中;
非公平鎖:不管是否有等待隊(duì)列,如果可以獲取鎖,則立刻占有鎖對象。也就是說隊(duì)列的第一個(gè)排隊(duì)線程蘇醒后,不一定就是排頭的這個(gè)線程獲得鎖,它還是需要參加競爭鎖(存在線程競爭的情況下),后來的線程可能不講武德插隊(duì)奪鎖了。
在這里插入圖片描述
第四:線程使用lock方法來加鎖
以下截圖為非公平鎖的
在這里插入圖片描述
第五:acquire()方法
在這里插入圖片描述
第六:tryAcquire方法
在這里插入圖片描述
第六,如果線程使用nonfairTryAcquire方法搶占資源失敗,則使用addWaiter方法將線程加入等待隊(duì)列
在這里插入圖片描述
在這里插入圖片描述
第一次調(diào)用enq方法之后會形成以下的樣子:
在這里插入圖片描述
第七:acquireQueued()方法
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
第八:使用unlock方法來釋放鎖
在這里插入圖片描述
在這里插入圖片描述
隊(duì)列中喚醒的線程再去搶占鎖

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧

網(wǎng)站標(biāo)題:Java之AQS-創(chuàng)新互聯(lián)
文章來源:http://m.rwnh.cn/article46/ggseg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、微信小程序網(wǎng)站策劃、自適應(yīng)網(wǎng)站、品牌網(wǎng)站制作、網(wǎng)站維護(hù)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

手機(jī)網(wǎng)站建設(shè)
嘉峪关市| 长海县| 花莲市| 静安区| 莱州市| 徐闻县| 青冈县| 油尖旺区| 汪清县| 清涧县| 冷水江市| 正定县| 唐河县| 泰兴市| 恩施市| 成武县| 自贡市| 宁海县| 德昌县| 新乡县| 永嘉县| 宣城市| 荥阳市| 兴山县| 衡阳市| 阿坝| 泸州市| 平塘县| 莒南县| 合肥市| 宜丰县| 绥江县| 长沙市| 娄底市| 高州市| 海晏县| 常宁市| 策勒县| 左云县| 青岛市| 读书|