老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

重慶分公司,新征程啟航

為企業(yè)提供網(wǎng)站建設(shè)、域名注冊、服務(wù)器等服務(wù)

如何淺析Java并發(fā)工具類在AQS實(shí)現(xiàn)-創(chuàng)新互聯(lián)

本篇文章給大家分享的是有關(guān)如何淺析Java并發(fā)工具類在AQS實(shí)現(xiàn),小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

創(chuàng)新互聯(lián)從2013年成立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都網(wǎng)站制作、成都做網(wǎng)站、外貿(mào)營銷網(wǎng)站建設(shè)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢想脫穎而出為使命,1280元林甸做網(wǎng)站,已為上家服務(wù),為林甸各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:13518219792

眾所周知,AQS是一個(gè)Java提高的底層同步工具類。本文就AQS的資源共享方式,state的作用,自定義同步器的方法,CountDownLatch,Semaphore,Semaphore和RateLimiter的區(qū)別,CyclicBarrier幾方面來為大家淺析Java并發(fā)工具類。 

AQS維護(hù)了一個(gè)volatile int state(代表共享資源)和一個(gè)FIFO線程等待隊(duì)列(多線程爭用資源被阻塞時(shí)會進(jìn)入此隊(duì)列),用于后續(xù)的調(diào)度。此外還可能有一個(gè)或者多個(gè)的Condition單向鏈表,用于Condition的處理,這個(gè)單向鏈表不是必須的,可能不存在。

1、AQS的資源共享方式

Exclusive(獨(dú)占,只有一個(gè)線程能執(zhí)行,如ReentrantLock)

Share(共享,多個(gè)線程可同時(shí)執(zhí)行,如Semaphore/CountDownLatch)

2、state的作用

以ReentrantLock為例,state初始化為0,表示未鎖定狀態(tài)。A線程lock()時(shí),會調(diào)用tryAcquire()獨(dú)占該鎖并將state+1。此后,其他線程再tryAcquire()時(shí)就會失敗,直到A線程unlock()到state=0(即釋放鎖)為止,其它線程才有機(jī)會獲取該鎖。當(dāng)然,釋放鎖之前,A線程自己是可以重復(fù)獲取此鎖的(state會累加),這就是可重入的概念。但要注意,獲取多少次就要釋放多少次,這樣才能保證state能回到零狀態(tài)。

以CountDownLatch以例,任務(wù)分為N個(gè)子線程去執(zhí)行,state也初始化為N(注意N要與線程個(gè)數(shù)一致)。這N個(gè)子線程是并行執(zhí)行的,每個(gè)子線程執(zhí)行完后countDown()一次,state會CAS減1。等到所有子線程都執(zhí)行完后(即state=0),會unpark()調(diào)用主線程,然后調(diào)用主線程就會從await()函數(shù)返回,繼續(xù)后續(xù)動作。

3、自定義同步器的方法

具體線程等待隊(duì)列的維護(hù)(如獲取資源失敗入隊(duì)/喚醒出隊(duì)等),AQS已經(jīng)在頂層實(shí)現(xiàn)好了。自定義同步器實(shí)現(xiàn)時(shí)主要實(shí)現(xiàn)以下幾種方法:

isHeldExclusively():該線程是否正在獨(dú)占資源。只有用到condition才需要去實(shí)現(xiàn)它。

tryAcquire(int):獨(dú)占方式。嘗試獲取資源,成功則返回true,失敗則返回false。

tryRelease(int):獨(dú)占方式。嘗試釋放資源,成功則返回true,失敗則返回false。

tryAcquireShared(int):共享方式。嘗試獲取資源。負(fù)數(shù)表示失敗;0表示成功,但沒有剩余可用資源;正數(shù)表示成功,且有剩余資源。

tryReleaseShared(int):共享方式。嘗試釋放資源,如果釋放后允許喚醒后續(xù)等待結(jié)點(diǎn)返回true,否則返回false。

4、CountDownLatch

CountDownLatch是通過一個(gè)計(jì)數(shù)器來實(shí)現(xiàn)的,計(jì)數(shù)器的初始值為線程的數(shù)量。每當(dāng)一個(gè)線程完成了自己的任務(wù)后,計(jì)數(shù)器的值就會減1。當(dāng)計(jì)數(shù)器值到達(dá)0時(shí),它表示所有的線程已經(jīng)完成了任務(wù),然后等待的線程就可以恢復(fù)執(zhí)行任務(wù)。

常見運(yùn)用場景

多線程做資源初始化,主線程先暫停等待初始化結(jié)束;每個(gè)線程初始化結(jié)束后都countDown一次,等全部線程都初始化結(jié)束后(state=0),此時(shí)主線程再繼續(xù)往下執(zhí)行

5、Semaphore

Semaphore可以控制某個(gè)資源可被同時(shí)訪問的個(gè)數(shù),通過acquire()獲取一個(gè)許可,如果沒有就等待,而release() 釋放一個(gè)許可。單個(gè)信號量的Semaphore對象可以實(shí)現(xiàn)互斥鎖的功能,并且可以是由一個(gè)線程獲得了“鎖”,再由另一個(gè)線程釋放“鎖”,這可應(yīng)用于死鎖恢復(fù)的一些場合。

常見應(yīng)用場景

Semaphore可以用來做流量控制,限制可以訪問某些資源(物理或邏輯的),特別公用資源有限的應(yīng)用場景,比如數(shù)據(jù)庫連接。

6、Semaphore和RateLimiter的區(qū)別

Semaphore:作用是限定只有搶到信號的線程才能執(zhí)行,其他的都得等待。你可以設(shè)置N個(gè)信號,這樣最多可以有N個(gè)線程同時(shí)執(zhí)行。注意,其他的線程只是掛起了,是通過限制線程個(gè)數(shù)來進(jìn)行限流。

RateLimiter:Guava的限流工具類,基于令牌桶算法實(shí)現(xiàn)。作用是 限制一秒內(nèi)只能有N個(gè)線程執(zhí)行,超過了就只能等待下一秒。注意,N是double類型。是從速率來進(jìn)行限流。

7、CyclicBarrier

CyclicBarrier可以使一定數(shù)量的線程反復(fù)地在柵欄位置處匯集。當(dāng)線程到達(dá)柵欄位置時(shí)將調(diào)用await方法,這個(gè)方法將阻塞直到所有線程都到達(dá)柵欄位置。如果所有線程都到達(dá)柵欄位置,那么柵欄將打開,此時(shí)所有的線程都將被釋放,而柵欄將會重置為原來的計(jì)數(shù)以便下次使用。

常見應(yīng)用場景

用于多線程計(jì)算數(shù)據(jù),最后合并計(jì)算結(jié)果的場景。每個(gè)parter負(fù)責(zé)一部分計(jì)算,最后進(jìn)行數(shù)據(jù)匯總。

以上就是如何淺析Java并發(fā)工具類在AQS實(shí)現(xiàn),小編相信有部分知識點(diǎn)可能是我們?nèi)粘9ぷ鲿姷交蛴玫降摹OM隳芡ㄟ^這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計(jì)公司行業(yè)資訊頻道。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。


分享名稱:如何淺析Java并發(fā)工具類在AQS實(shí)現(xiàn)-創(chuàng)新互聯(lián)
網(wǎng)頁路徑:http://www.xueling.net.cn/article/hsjgo.html

其他資訊

在線咨詢
服務(wù)熱線
服務(wù)熱線:028-86922220
TOP
主站蜘蛛池模板: 一区二区三级视频 | 公开超碰在线 | 亚洲国产成人久久 | 亚洲在线观看一区 | 精品成人私密视频 | 国产+成+人+亚洲欧洲自线 | 国产一区高清在线 | 好男人在在线社区WWW在线影院 | 国产精品人妖ts系列视频 | 国产成人jvid在线播放 | 久久久麻豆 | 亚洲特黄 | 国产一区二区三区美女 | 亚洲成网站 | 日本午夜人人精品 | 小明看国产 | 99久久国语露脸精品国产 | 精品一区二区AV天堂 | 免费观看黄色片 | 国产玖玖在线 | 亚洲区中文字幕 | 中文字幕高清免费日韩视频在线 | 国产亚洲精品一区二区在线观看 | 无码人妻一区二区三区免费 | 91在线网站 | 一出一进一爽一粗一大视频免费的 | 噜噜爽av99| 日韩一级片一区二区三区 | 亚洲国产成人精品无码区99 | 日韩一区二区观看 | 四虎成人网 | 亚洲片在线观看 | 99热99| 久久九九高潮毛片免费全部播放 | 久久久精品国产免费a片胖妇女 | 在线观看免费视频一区 | 亚洲精品无码午夜福利理论片 | 国产日产亚洲系列最新 | 国产精品女同一区二区久久夜 | 欧美日本不卡视频 | 亚洲一区美女 |