久久久精品一区ed2k-女人被男人叉到高潮的视频-中文字幕乱码一区久久麻豆樱花-俄罗斯熟妇真实视频

多線程(九、AQS原理-簡(jiǎn)介)

AQS介紹

AQS是一個(gè)抽象類(lèi),提供了一套通用的控制同步狀態(tài),線程阻塞/喚醒,等待隊(duì)列管理的操作。

平時(shí)用的ReentrantLock,CountDownLatch,Semaphore(信號(hào)量)都是基于AQS提供API來(lái)實(shí)現(xiàn)的,他們的不同之處就是對(duì)于AQS內(nèi)部的同步狀態(tài)(synchronization state,int類(lèi)型)操作不同,來(lái)實(shí)現(xiàn)的功能不同。

多線程(九、AQS原理-簡(jiǎn)介)

成都創(chuàng)新互聯(lián)公司從2013年創(chuàng)立,先為恭城等服務(wù)建站,恭城等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為恭城企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。

AQS基于同步狀態(tài)(synchronization state)主要解決了3個(gè)問(wèn)題:

1、資源的訪問(wèn)是共享的還是獨(dú)占的,比方說(shuō)ReentrantLock是獨(dú)占的,ReentrantReadWriteLock.ReadLock是共享的

2、如何管理等待的線程,使用等待隊(duì)列

3、無(wú)法獲取資源,線程的超時(shí)和中斷機(jī)制

AQS的主要方法

如何使用同步狀態(tài)(synchronization state)才是繼承AQS的使用者考慮的問(wèn)題。

AQS暴露給子類(lèi)可以使用的方法如下:

1、tryAcquire 獨(dú)占資源獲取
2、tryRelease 獨(dú)占資源釋放
3、tryAcquireShared 共享資源獲取
4、tryReleaseShared 共享資源釋放
5、isHeldExclusively 是否占用獨(dú)占資源

AQS框架內(nèi)部通過(guò)一個(gè)內(nèi)部類(lèi)ConditionObject,實(shí)現(xiàn)了Condition接口,以此來(lái)為子類(lèi)提供條件等待的功能。

多線程(九、AQS原理-簡(jiǎn)介)

AQS的內(nèi)部私有方法:

關(guān)于同步狀態(tài)(synchronization state)AQS提供了3個(gè)方法

1、setState 設(shè)置同步狀態(tài)
2、getState 獲取同步狀態(tài)
3、CAS的compareAndSetState 基于unsafe的CAS設(shè)置同步狀態(tài)

等待隊(duì)列的方法

1、enq 入隊(duì)操作指定節(jié)點(diǎn)(后面介紹),可以進(jìn)行初始化
2、addWaiter 入隊(duì)操作節(jié)點(diǎn),節(jié)點(diǎn)是當(dāng)前線程
3、setHead 設(shè)置頭節(jié)點(diǎn)
4、unparkSuccessor 喚醒當(dāng)前節(jié)點(diǎn)的后繼節(jié)點(diǎn)
5、doReleaseShared 釋放共享節(jié)點(diǎn)
6、setHeadAndPropagate 設(shè)置頭節(jié)點(diǎn),并依次喚醒后繼節(jié)點(diǎn)

操作資源的方法

1、acquire public final 獨(dú)占地獲取資源
2、acquireInterruptibly public final 獨(dú)占地獲取資源(響應(yīng)中斷)
3、acquireInterruptibly public final 獨(dú)占地獲取資源(限時(shí)等待)
4、acquireShared public final 共享地獲取資源
5、acquireSharedInterruptibly public final 共享地獲取資源(響應(yīng)中斷)
6、tryAcquireSharedNanos public final 共享地獲取資源(限時(shí)等待)
7、等等等........

等待隊(duì)列

等待隊(duì)列是以節(jié)點(diǎn)(Node)為單位,節(jié)點(diǎn)里包裝了線程。

多線程(九、AQS原理-簡(jiǎn)介)

節(jié)點(diǎn)有2種類(lèi)型,共享節(jié)點(diǎn)和獨(dú)占節(jié)點(diǎn),獨(dú)占和共享

多線程(九、AQS原理-簡(jiǎn)介)

節(jié)點(diǎn)狀態(tài)(waitStatus),共享節(jié)點(diǎn)和獨(dú)占節(jié)點(diǎn)的狀態(tài)使用值是不一樣的。

1、節(jié)點(diǎn)默認(rèn)狀態(tài)為0。
多線程(九、AQS原理-簡(jiǎn)介)
2、其中獨(dú)占結(jié)點(diǎn)使用其中的CANCELLED(1)、SIGNAL(-1)、CONDITION(-2),共享結(jié)點(diǎn)使用其中的CANCELLED(1)、SIGNAL(-1)、PROPAGATE(-3)。

網(wǎng)站標(biāo)題:多線程(九、AQS原理-簡(jiǎn)介)
鏈接分享:http://sd-ha.com/article18/gegidp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作、網(wǎng)站收錄、網(wǎng)站策劃移動(dòng)網(wǎng)站建設(shè)、網(wǎng)站內(nèi)鏈外貿(mào)建站

廣告

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

商城網(wǎng)站建設(shè)