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

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

Java1.8中StampedLock的作用是什么

本篇文章給大家分享的是有關(guān)Java1.8中StampedLock的作用是什么,小編覺(jué)得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說(shuō),跟著小編一起來(lái)看看吧。

創(chuàng)新互聯(lián)網(wǎng)站建設(shè)提供從項(xiàng)目策劃、軟件開(kāi)發(fā),軟件安全維護(hù)、網(wǎng)站優(yōu)化(SEO)、網(wǎng)站分析、效果評(píng)估等整套的建站服務(wù),主營(yíng)業(yè)務(wù)為網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站設(shè)計(jì),app軟件開(kāi)發(fā)公司以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專(zhuān)業(yè)、用心的態(tài)度為用戶(hù)提供真誠(chéng)的服務(wù)。創(chuàng)新互聯(lián)深信只要達(dá)到每一位用戶(hù)的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!

StampedLock把讀分為了悲觀讀和樂(lè)觀讀,悲觀讀就等價(jià)于ReadWriteLock的讀,而樂(lè)觀讀在一個(gè)線程寫(xiě)共享變量時(shí),不會(huì)被阻塞,樂(lè)觀讀是不加鎖的。所以沒(méi)鎖肯定是比有鎖的性能好,這樣的話在大并發(fā)讀情況下效率就更高了!

StampedLock的用法稍稍有點(diǎn)不同,在獲取鎖和樂(lè)觀讀時(shí),都會(huì)返回一個(gè)stamp,解鎖時(shí)需要傳入這個(gè)stamp,在樂(lè)觀讀時(shí)是用來(lái)驗(yàn)證共享變量是否被其他線程寫(xiě)過(guò)。來(lái)看一下官方示例

Java1.8中StampedLock的作用是什么

其上的操作在樂(lè)觀讀時(shí),如果有寫(xiě)操作修改了共享變量則升級(jí)樂(lè)觀讀為悲觀讀鎖,這樣避免樂(lè)觀讀反復(fù)的循環(huán)等待寫(xiě)鎖的釋放,避免浪費(fèi)CPU資源。所以在我們的使用StampedLock的時(shí)候,建議這樣操作。

看起來(lái)好像StampedLock性能又比ReadWriteLock鎖好,那是不是都可以用StampedLock拋棄ReadWriteLock?

并不是的,StampedLock不是可重入鎖,所以不支持重入,并且StampedLock不支持條件變量,也就是沒(méi)Condition。如果是線程使用writeLock()或者readLock()獲得鎖之后,線程還沒(méi)執(zhí)行完就被interrupt()的話,會(huì)導(dǎo)致CPU飆升....坑啊

我們來(lái)看下源碼

Java1.8中StampedLock的作用是什么

首先里面是個(gè)無(wú)限循環(huán),然后 if (interruptible && Thread.interrupted())已經(jīng)得知調(diào)用的interruptible參數(shù)傳入的是false,所以Thread.interrupted()也不會(huì)執(zhí)行到,也一定調(diào)用不到cancelWaiter,所以就一直循環(huán)循環(huán),CPU使用率就會(huì)漲漲漲。

所以如果要使用中斷功能就得用readLockInterruptibly()或者writeLockInterruptibly()來(lái)獲得鎖。

以上就是Java1.8中StampedLock的作用是什么,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見(jiàn)到或用到的。希望你能通過(guò)這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


分享名稱(chēng):Java1.8中StampedLock的作用是什么
本文來(lái)源:http://weahome.cn/article/ihhjji.html

其他資訊

在線咨詢(xún)

微信咨詢(xún)

電話咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部