国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導航

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

服務(wù)器之家 - 編程語言 - Java教程 - ReentrantReadWriteLock不能鎖升級的原因總結(jié)

ReentrantReadWriteLock不能鎖升級的原因總結(jié)

2021-09-22 11:11skyline_wx Java教程

今天給大家?guī)淼氖顷P(guān)于Java并發(fā)的相關(guān)知識,文章圍繞著為什么ReentrantReadWriteLock不能鎖升級展開,文中有非常詳細的介紹及代碼示例,需要的朋友可以參考下

為什么ReentrantReadWriteLock不能鎖升級

ReentrantReadWriteLock中,鎖是不可以升級的,只能降級。

也就是如果當前線程持有了ReadLock,那么就不能再獲取WriteLock,但是,如果當前線程持有了WriteLock,可以直接獲取ReadLock

下面用代碼嘗試一下:

  1. Logger logger = LoggerFactory.getLogger(this.getClass());
  2. ReentrantReadWriteLock reentrantReadWriteLock = new ReentrantReadWriteLock();
  3. ReentrantReadWriteLock.ReadLock readLock = reentrantReadWriteLock.readLock();
  4. ReentrantReadWriteLock.WriteLock writeLock = reentrantReadWriteLock.writeLock();
  5. logger.info("線程:[{}],開始readLock",Thread.currentThread().getName());
  6. readLock.lock();
  7. logger.info("線程:[{}],readLock成功",Thread.currentThread().getName());
  8. logger.info("線程:[{}],開始writeLock",Thread.currentThread().getName());
  9. writeLock.lock();
  10. logger.info("線程:[{}],writeLock成功",Thread.currentThread().getName());

從打印結(jié)果可以看出來,程序阻塞在了writeLock.lock();這一行上。

ReentrantReadWriteLock不能鎖升級的原因總結(jié)

下面我們看一下WriteLock的加鎖過程的部分源碼:

java.util.concurrent.locks.ReentrantReadWriteLock.Sync#tryAcquire

ReentrantReadWriteLock不能鎖升級的原因總結(jié)

當這個tryAcquire返回false時,就跟ReentrantLock的邏輯差不多了,最后各種判斷條件都會失敗,最后,程序會阻塞在這里:java.util.concurrent.locks.AbstractQueuedSynchronizer#parkAndCheckInterrupt

ReentrantReadWriteLock不能鎖升級的原因總結(jié)

用流程圖來描述一下這個問題是這樣的:

ReentrantReadWriteLock不能鎖升級的原因總結(jié)

假如只有一個線程t1,當t1已經(jīng)獲取讀鎖之后,再次獲取寫鎖,因為寫鎖在加鎖時判斷到當前鎖已經(jīng)被加過讀鎖讀寫互斥,所以寫鎖會等待讀鎖釋放之后再加鎖。但是因為讀鎖是被當前線程持有的,所以這個等待會無限的等待下去,最后就成了死鎖。

到此這篇關(guān)于ReentrantReadWriteLock不能鎖升級的原因總結(jié)的文章就介紹到這了,更多相關(guān)ReentrantReadWriteLock不能鎖升級內(nèi)容請搜索服務(wù)器之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持服務(wù)器之家!

原文鏈接:https://blog.csdn.net/WX10301075WX/article/details/117920229

延伸 · 閱讀

精彩推薦
  • Java教程xml與Java對象的轉(zhuǎn)換詳解

    xml與Java對象的轉(zhuǎn)換詳解

    這篇文章主要介紹了xml與Java對象的轉(zhuǎn)換詳解的相關(guān)資料,需要的朋友可以參考下...

    Java教程網(wǎng)2942020-09-17
  • Java教程Java使用SAX解析xml的示例

    Java使用SAX解析xml的示例

    這篇文章主要介紹了Java使用SAX解析xml的示例,幫助大家更好的理解和學習使用Java,感興趣的朋友可以了解下...

    大行者10067412021-08-30
  • Java教程Java8中Stream使用的一個注意事項

    Java8中Stream使用的一個注意事項

    最近在工作中發(fā)現(xiàn)了對于集合操作轉(zhuǎn)換的神器,java8新特性 stream,但在使用中遇到了一個非常重要的注意點,所以這篇文章主要給大家介紹了關(guān)于Java8中S...

    阿杜7472021-02-04
  • Java教程Java BufferWriter寫文件寫不進去或缺失數(shù)據(jù)的解決

    Java BufferWriter寫文件寫不進去或缺失數(shù)據(jù)的解決

    這篇文章主要介紹了Java BufferWriter寫文件寫不進去或缺失數(shù)據(jù)的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望...

    spcoder14552021-10-18
  • Java教程升級IDEA后Lombok不能使用的解決方法

    升級IDEA后Lombok不能使用的解決方法

    最近看到提示IDEA提示升級,尋思已經(jīng)有好久沒有升過級了。升級完畢重啟之后,突然發(fā)現(xiàn)好多錯誤,本文就來介紹一下如何解決,感興趣的可以了解一下...

    程序猿DD9332021-10-08
  • Java教程小米推送Java代碼

    小米推送Java代碼

    今天小編就為大家分享一篇關(guān)于小米推送Java代碼,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧...

    富貴穩(wěn)中求8032021-07-12
  • Java教程Java實現(xiàn)搶紅包功能

    Java實現(xiàn)搶紅包功能

    這篇文章主要為大家詳細介紹了Java實現(xiàn)搶紅包功能,采用多線程模擬多人同時搶紅包,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙...

    littleschemer13532021-05-16
  • Java教程20個非常實用的Java程序代碼片段

    20個非常實用的Java程序代碼片段

    這篇文章主要為大家分享了20個非常實用的Java程序片段,對java開發(fā)項目有所幫助,感興趣的小伙伴們可以參考一下 ...

    lijiao5352020-04-06
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 国产精品久久久久久久久久小说 | 久久久久久久成人 | 午夜电影网址 | 亚洲国产精品一区二区三区 | 久久精品99 | 亚洲精品视频在线免费 | 欧美第一视频 | 国产一区二区三区久久 | 国产激情网 | 国产精品欧美一区二区三区不卡 | 国产一区二区三区在线视频观看 | 91成人看片| 日韩欧美二区 | а天堂中文最新一区二区三区 | 精品一区二区电影 | av在线成人 | 午夜啪 | 成人精品一区二区 | 国产精品久久九九 | 国产乱轮 | 国产成年人电影在线观看 | 成人国产精品久久 | 中文字幕视频在线观看 | 免费观看全黄做爰大片国产 | 国产精品久久久久久久久软件 | 免费观看一区二区三区 | 91高清在线| 精品美女久久久 | 精品国产91亚洲一区二区三区www | 精品一区二区三区免费 | 亚洲精品日韩精品 | 亚洲毛片 | 亚洲欧洲精品成人久久奇米网 | 男人的天堂视频网站 | 久久久av亚洲男天堂 | 久久久国产精品久久久 | 亚洲成av人片在线观看 | 国产精品二区一区二区aⅴ污介绍 | 亚洲一区二区视频 | 一级黄色大片 | 精品国产一区二区三区四 |