亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

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

java - lock與synchronize的解鎖順序問題?

瀏覽:100日期:2024-01-29 17:26:50

問題描述

在學習lock與synchronize的區別時,看到這樣一句話:“ lock更靈活,可以自由定義多把鎖的枷鎖解鎖順序(synchronized要按照先加的后解順序)”。請問這里:

1.lock的自由定義多把鎖的枷鎖解鎖順序怎么理解?2.synchronized要按照先加的后解順序怎么理解?

謝謝各位!

問題解答

回答1:

Lock是一個接口,最常用的實現是 ReentrantLock,它的一個靈活之處是可以設定fair參數。

synchronized 和fair=false的ReentrantLock 無法決定加鎖順序。換句話說,線程A、B、C都要鎖定對象,嘗試鎖定的時間是A最早、然后是B,最后是C,那么當A解鎖對象時,不能確定到底B還是C接下來鎖定對象。

如果用fair=true的ReentrantLock(公平鎖),情況就確定了:A解鎖對象時,由于B比C先嘗試鎖定對象,所以接下來一定是B來鎖定,只有當B解鎖時才輪到C。

回答2:

new lock1new lock2lock1.lock();lock2.lock();...lock2.unlock();lock1.unlock();

Lock的加解鎖是在java語義層面上實現的,鎖之間沒有必然關系

synchronized(obj1){ synchronized(obj2){... }}

synchronized加解鎖是由JVM來實現,在執行完synchronized塊后自行解鎖,所有會按照synchronized的嵌套順序解鎖。

標簽: java
相關文章:
主站蜘蛛池模板: 热综合一本伊人久久精品 | 一级在线免费视频 | 女人被男人狂躁的视频免费 | 一级毛片免费毛片毛片 | 视频二区在线 | 久久久国产视频 | 黄色三级视频在线播放 | 美国美女黄色片 | 国产精品午夜在线观看 | 永久免费人成网ww555kkk手机 | 在线精品国产 | 岛国毛片一级一级特级毛片 | 成人做爰全过程免费看网站 | 精品色视频 | 国产午夜精品久久久久九九 | 亚洲免费观看视频 | 欧美亚洲香蕉 | 亚洲第一区视频 | 久热精品视频在线 | 特级黄色一级片 | 澳门一级毛片免费播放 | 香蕉视频呦呦 | 久久精彩免费视频 | 美女视频一区二区 | 朴妮唛1一30集福利在线播放 | 2020亚洲欧美日韩在线观看 | 小明成人永久免费观看视频 | 欧美成人一区二区三区不卡 | 亚欧在线精品免费观看一区 | 亚洲在线免费 | 中文一级黄色片 | 久久精品国产网红主播图片 | 国产第一页无线好源 | 久久大胆视频 | 亚洲国产精品毛片∧v卡在线 | 国产成人禁片免费观看视频 | 精品一区二区久久久久久久网精 | 欧美黄色片在线播放 | 国产亚洲精品高清在线 | 国内免费在线视频 | 毛片在线视频在线播放 |