国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

java - ReentrantLock和Synchronized

瀏覽:104日期:2023-12-07 17:49:46

問題描述

在資源競爭不是很激烈的情況下,Synchronized的性能要優于ReetrantLock,但是在資源競爭很激烈的情況下,Synchronized的性能會下降幾十倍,但是ReetrantLock的性能能維持常態

(1)這個是為啥?(2)ReentrantLock是不是輕量級鎖? 輕量級鎖有哪些? 只聽過這個名字,沒見過有具體實現

用synchronized時候,如果程序運行出錯,就會拋出異常,但是不會去做清理工作。使用ReentrantLock允許你嘗試著獲取但最終未獲取的鎖,這樣如果其他人已經獲得這個鎖,那你就可以離開去執行別的事情(但是我現在想做的事情的是獲取鎖之后進行某些操作,現在轉而去執行其他事情好像意義不太大呀),而不是等待直到這個鎖被釋放。

問題解答

回答1:

首先你說的這個情況,是在java 1.5剛引入ReentrantLock的時候才有,java1.6對Synchronized的實現算法進行了改造,與ReentrantLock的實現基本一致,所以倆者的性能差異已經很小了。關于輕量級鎖,這是java1.6引入的提升鎖性能的一種方式,屬于jvm層級的,不存在什么具體實現。如果希望等待直到這個鎖被釋放,可以使用Lock.lock()獲得的方式獲得鎖,使用Lock.tryLock()才是在嘗試獲取可能獲取不到鎖。

回答2:

可以簡單一點的理解,synchronized 的讀寫頁都是互斥的,但是 ReentrantLock 有讀寫鎖,讀鎖可以共享,寫鎖才互斥,如果從這里看的話 ReentrantLock 在讀多,寫少的情況下性能會高不少,但是代碼比 synchronized 的復雜,如果控制不好也容易出問題。

標簽: java
相關文章:
主站蜘蛛池模板: 亚洲美女高清aⅴ视频免费 亚洲美女黄色片 | 欧美另类69xxxxx视频 | 国产成人亚洲精品久久 | 亚洲乱强 | 女人张开腿让男人桶免费网站 | 一区二区不卡视频在线观看 | 欧美三级日韩三级 | 国产三级在线 | 国产v片成人影院在线观看 国产v片在线播放免费观 | 毛片免费观看网址 | 美国一级毛片不卡无毒 | 欧美一及片 | 中文字幕99在线精品视频免费看 | 日韩一区二区视频在线观看 | 亚洲欧美日本综合一区二区三区 | 宅女深夜福利视频在线 | 国产一区二区三区在线免费 | 亚洲一区在线免费观看 | 欧美亚洲国产人成aaa | 国产一级做a爰片在线 | 亚洲欧美日韩高清在线看 | 国产在线观看一区二区三区 | 女人精aaaa片一级毛片女女 | 欧美性猛交xxxxxxxx软件 | 国产成人精品aaaa视频一区 | 日本aa级片 | 玖玖玖精品视频免费播放 | 亚洲精品在线播放 | 国模午夜写真福利视频在线 | 免费在线视频成人 | 成年男女免费视频网站播放 | 2019国产精品 | 亚洲精选在线观看 | 欧美日韩亚洲成色二本道三区 | 国内在线精品 | 亚洲最大免费视频网 | 亚洲成人黄色片 | 99精品国产免费久久国语 | 日本免费高清一区 | 色视频在线观看免费 | 日韩成人在线视频 |