激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務(wù)器之家:專(zhuān)注于服務(wù)器技術(shù)及軟件下載分享
分類(lèi)導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語(yǔ)言|JavaScript|易語(yǔ)言|vb.net|

服務(wù)器之家 - 編程語(yǔ)言 - Java教程 - 詳談Lock與synchronized 的區(qū)別

詳談Lock與synchronized 的區(qū)別

2020-09-22 10:09Java教程網(wǎng) Java教程

下面小編就為大家?guī)?lái)一篇詳談Lock與synchronized 的區(qū)別。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

1、lock是可中斷鎖,而synchronized 不是可中斷鎖

線程A和B都要獲取對(duì)象O的鎖定,假設(shè)A獲取了對(duì)象O鎖,B將等待A釋放對(duì)O的鎖定,

如果使用 synchronized ,如果A不釋放,B將一直等下去,不能被中斷

如果 使用ReentrantLock,如果A不釋放,可以使B在等待了足夠長(zhǎng)的時(shí)間以后,中斷等待,而干別的事情

ReentrantLock獲取鎖定與三種方式:

a)  lock(),如果獲取了鎖立即返回,如果別的線程持有鎖,當(dāng)前線程則一直處于休眠狀態(tài),直到獲取鎖

b) tryLock(),如果獲取了鎖立即返回true,如果別的線程正持有鎖,立即返回false;

c) tryLock(long timeout,TimeUnit unit),如果獲取了鎖定立即返回true,如果別的線程正持有鎖,會(huì)等待參數(shù)給定的時(shí)間,在等待的過(guò)程中,如果獲取了鎖定,就返回true,如果等待超時(shí),返回false;

d) lockInterruptibly:如果獲取了鎖定立即返回,如果沒(méi)有獲取鎖定,當(dāng)前線程處于休眠狀態(tài),直到或者鎖定,或者當(dāng)前線程被別的線程中斷

2、synchronized是在JVM層面上實(shí)現(xiàn)的,lock是通過(guò)代碼實(shí)現(xiàn)的,JVM會(huì)自動(dòng)釋放鎖定(代碼執(zhí)行完成或者出現(xiàn)異常),但是使用Lock則不行,要保證鎖定一定會(huì)被釋放,就必須將unLock()放到finally{}中。

3、在資源競(jìng)爭(zhēng)不是很激烈的情況下,Synchronized的性能要優(yōu)于ReetrantLock,但是在資源競(jìng)爭(zhēng)很激烈的情況下,Synchronized的性能會(huì)下降幾十倍,但是ReetrantLock的性能能維持常態(tài);

以上這篇詳談Lock與synchronized 的區(qū)別就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持服務(wù)器之家。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧美成人免费 | 成人不卡在线观看 | 成人国产精品齐天大性 | 日韩美香港a一级毛片免费 欧美一级淫片007 | 亚洲精品欧美一区二区三区 | 被啪羞羞视频在线观看 | 特级毛片免费视频 | 欧美一区二区三区久久久久久桃花 | 久久99精品久久久久久久久久久久 | 欧美精品日日鲁夜夜添 | 欧美日韩免费看 | 国产毛片自拍 | 超碰97青青草 | 日本网站一区 | 欧美hdfree性xxxx| 毛片视频播放 | 99视频网址 | 激情亚洲一区二区 | 国产精品伦视频看免费三 | 在线观看第一区 | 亚洲综合一区在线观看 | 狠狠ri | 成人综合免费视频 | av在线播放免费观看 | 久久精品成人影院 | 宅男视频在线观看免费 | 成人福利在线 | 成人免费福利视频 | 久久久综 | 国产一区二区三区四区在线 | 久久久久久久久久久影视 | 久久国产精品久久久久久久久久 | 91免费电影 | av日韩一区二区三区 | 国产日韩久久久久69影院 | 久久久综合久久久 | 麻豆视频国产在线观看 | 精品国产一区二区三区四区阿崩 | 久久久精品视频免费看 | 日本不卡一二三区 | 一级免费看片 |