創(chuàng)新互聯(lián)www.cdcxhl.cn八線動態(tài)BGP香港云服務(wù)器提供商,新人活動買多久送多久,劃算不套路!
我們提供的服務(wù)有:網(wǎng)站設(shè)計制作、成都網(wǎng)站設(shè)計、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認證、長安ssl等。為上千家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的長安網(wǎng)站制作公司深入淺析ReentrantL中實現(xiàn)ock的原理?相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。
1 synchronized和lock
1.1 synchronized的局限性
1.2 Lock簡介
2 AQS
3 lock()與unlock()實現(xiàn)原理
3.1 基礎(chǔ)知識
3.2 內(nèi)部結(jié)構(gòu)
3.3 NonfairSync
3.3.1 lock()
3.3.2 unlock()
3.3.3 小結(jié)
3.4 FairSync
4 超時機制
5 總結(jié)
1 synchronized和lock
1.1 synchronized的局限性
synchronized是java內(nèi)置的關(guān)鍵字,它提供了一種獨占的加鎖方式。synchronized的獲取和釋放鎖由JVM實現(xiàn),用戶不需要顯示的釋放鎖,非常方便。然而synchronized也有一定的局限性,例如:
當(dāng)線程嘗試獲取鎖的時候,如果獲取不到鎖會一直阻塞。
如果獲取鎖的線程進入休眠或者阻塞,除非當(dāng)前線程異常,否則其他線程嘗試獲取鎖必須一直等待。
JDK1.5之后發(fā)布,加入了Doug Lea實現(xiàn)的concurrent包。包內(nèi)提供了Lock類,用來提供更多擴展的加鎖功能。Lock彌補了synchronized的局限,提供了更加細粒度的加鎖功能。
1.2 Lock簡介
Lock api如下
void lock(); void lockInterruptibly() throws InterruptedException; boolean tryLock(); boolean tryLock(long time, TimeUnit unit) throws InterruptedException; void unlock(); Condition newCondition();
標題名稱:深入淺析ReentrantLock的實現(xiàn)原理-創(chuàng)新互聯(lián)
轉(zhuǎn)載源于:http://jinyejixie.com/article16/dishdg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、網(wǎng)站導(dǎo)航、網(wǎng)站制作、企業(yè)建站、網(wǎng)站維護、網(wǎng)站內(nèi)鏈
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容