這篇文章主要講解了“Java ReentrantLock的反例和正例用法介紹”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Java ReentrantLock的反例和正例用法介紹”吧!

創(chuàng)新新互聯(lián),憑借十載的成都做網(wǎng)站、成都網(wǎng)站制作經(jīng)驗(yàn),本著真心·誠心服務(wù)的企業(yè)理念服務(wù)于成都中小企業(yè)設(shè)計(jì)網(wǎng)站有上千案例。做網(wǎng)站建設(shè),選成都創(chuàng)新互聯(lián)。
在finally中釋放鎖
使用 ReentrantLock 時(shí)一定要記得釋放鎖,否則就會(huì)導(dǎo)致該鎖一直被占用,其他使用該鎖的線程則會(huì)永久的等待下去,所以我們在使用 ReentrantLock 時(shí),一定要在finally中釋放鎖,這樣就可以保證鎖一定會(huì)被釋放。
反例
import java.util.concurrent.locks.ReentrantLock;
publicclass LockExample {
// 創(chuàng)建鎖對象
privatestaticfinal ReentrantLock lock = new ReentrantLock();
public static void main(String[] args) {
// 加鎖操作
lock.lock();
System.out.println("Hello,ReentrantLock.");
// 此處會(huì)報(bào)異常,導(dǎo)致鎖不能正常釋放
int number = 1 / 0;
// 釋放鎖
lock.unlock();
System.out.println("鎖釋放成功!");
}
}當(dāng)出現(xiàn)異常時(shí)鎖未被正常釋放,這樣就會(huì)導(dǎo)致其他使用該鎖的線程永久的處于等待狀態(tài)。
正例
import java.util.concurrent.locks.ReentrantLock;
publicclass LockExample {
// 創(chuàng)建鎖對象
privatestaticfinal ReentrantLock lock = new ReentrantLock();
public static void main(String[] args) {
// 加鎖操作
lock.lock();
try {
System.out.println("Hello,ReentrantLock.");
// 此處會(huì)報(bào)異常
int number = 1 / 0;
} finally {
// 釋放鎖
lock.unlock();
System.out.println("鎖釋放成功!");
}
}
}雖然方法中出現(xiàn)了異常情況,但并不影響 ReentrantLock 鎖的釋放操作,這樣其他使用此鎖的線程就可以正常獲取并運(yùn)行了。
感謝各位的閱讀,以上就是“Java ReentrantLock的反例和正例用法介紹”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對Java ReentrantLock的反例和正例用法介紹這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點(diǎn)的文章,歡迎關(guān)注!
分享標(biāo)題:JavaReentrantLock的反例和正例用法介紹
網(wǎng)頁URL:http://chinadenli.net/article8/jijsip.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作、服務(wù)器托管、品牌網(wǎng)站建設(shè)、小程序開發(fā)、微信小程序、品牌網(wǎng)站設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(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)