真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Javaconcurrency之互斥鎖_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理-創(chuàng)新互聯(lián)

ReentrantLock介紹

員工經(jīng)過(guò)長(zhǎng)期磨合與沉淀,具備了協(xié)作精神,得以通過(guò)團(tuán)隊(duì)的力量開(kāi)發(fā)出優(yōu)質(zhì)的產(chǎn)品。成都創(chuàng)新互聯(lián)公司堅(jiān)持“專(zhuān)注、創(chuàng)新、易用”的產(chǎn)品理念,因?yàn)椤皩?zhuān)注所以專(zhuān)業(yè)、創(chuàng)新互聯(lián)網(wǎng)站所以易用所以簡(jiǎn)單”。公司專(zhuān)注于為企業(yè)提供網(wǎng)站制作、做網(wǎng)站、微信公眾號(hào)開(kāi)發(fā)、電商網(wǎng)站開(kāi)發(fā),成都微信小程序,軟件按需開(kāi)發(fā)網(wǎng)站等一站式互聯(lián)網(wǎng)企業(yè)服務(wù)。

ReentrantLock是一個(gè)可重入的互斥鎖,又被稱(chēng)為“獨(dú)占鎖”。

顧名思義,ReentrantLock鎖在同一個(gè)時(shí)間點(diǎn)只能被一個(gè)線(xiàn)程鎖持有;而可重入的意思是,ReentrantLock鎖,可以被單個(gè)線(xiàn)程多次獲取。

ReentrantLock分為“公平鎖”和“非公平鎖”。它們的區(qū)別體現(xiàn)在獲取鎖的機(jī)制上是否公平?!版i”是為了保護(hù)競(jìng)爭(zhēng)資源,防止多個(gè)線(xiàn)程同時(shí)操作線(xiàn)程而出錯(cuò),ReentrantLock在同一個(gè)時(shí)間點(diǎn)只能被一個(gè)線(xiàn)程獲取(當(dāng)某線(xiàn)程獲取到“鎖”時(shí),其它線(xiàn)程就必須等待);ReentraantLock是通過(guò)一個(gè)FIFO的等待隊(duì)列來(lái)管理獲取該鎖所有線(xiàn)程的。在“公平鎖”的機(jī)制下,線(xiàn)程依次排隊(duì)獲取鎖;而“非公平鎖”在鎖是可獲取狀態(tài)時(shí),不管自己是不是在隊(duì)列的開(kāi)頭都會(huì)獲取鎖。 


ReentrantLock函數(shù)列表


// 創(chuàng)建一個(gè) ReentrantLock ,默認(rèn)是“非公平鎖”。
ReentrantLock()
// 創(chuàng)建策略是fair的 ReentrantLock。fair為true表示是公平鎖,fair為false表示是非公平鎖。
ReentrantLock(boolean fair)
// 查詢(xún)當(dāng)前線(xiàn)程保持此鎖的次數(shù)。
int getHoldCount()
// 返回目前擁有此鎖的線(xiàn)程,如果此鎖不被任何線(xiàn)程擁有,則返回 null。
protected Thread getOwner()
// 返回一個(gè) collection,它包含可能正等待獲取此鎖的線(xiàn)程。
protected Collection getQueuedThreads()
// 返回正等待獲取此鎖的線(xiàn)程估計(jì)數(shù)。
int getQueueLength()
// 返回一個(gè) collection,它包含可能正在等待與此鎖相關(guān)給定條件的那些線(xiàn)程。
protected Collection getWaitingThreads(Condition condition)
// 返回等待與此鎖相關(guān)的給定條件的線(xiàn)程估計(jì)數(shù)。
int getWaitQueueLength(Condition condition)
// 查詢(xún)給定線(xiàn)程是否正在等待獲取此鎖。
boolean hasQueuedThread(Thread thread)
// 查詢(xún)是否有些線(xiàn)程正在等待獲取此鎖。
boolean hasQueuedThreads()
// 查詢(xún)是否有些線(xiàn)程正在等待與此鎖有關(guān)的給定條件。
boolean hasWaiters(Condition condition)
// 如果是“公平鎖”返回true,否則返回false。
boolean isFair()
// 查詢(xún)當(dāng)前線(xiàn)程是否保持此鎖。
boolean isHeldByCurrentThread()
// 查詢(xún)此鎖是否由任意線(xiàn)程保持。
boolean isLocked()
// 獲取鎖。
void lock()
// 如果當(dāng)前線(xiàn)程未被中斷,則獲取鎖。
void lockInterruptibly()
// 返回用來(lái)與此 Lock 實(shí)例一起使用的 Condition 實(shí)例。
Condition newCondition()
// 僅在調(diào)用時(shí)鎖未被另一個(gè)線(xiàn)程保持的情況下,才獲取該鎖。
boolean tryLock()
// 如果鎖在給定等待時(shí)間內(nèi)沒(méi)有被另一個(gè)線(xiàn)程保持,且當(dāng)前線(xiàn)程未被中斷,則獲取該鎖。
boolean tryLock(long timeout, TimeUnit unit)
// 試圖釋放此鎖。
void unlock()

文章名稱(chēng):Javaconcurrency之互斥鎖_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理-創(chuàng)新互聯(lián)
網(wǎng)址分享:http://weahome.cn/article/ipdeh.html

其他資訊

在線(xiàn)咨詢(xún)

微信咨詢(xún)

電話(huà)咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部