您现在的位置是:热点 >>正文
ZooKeeper 分布式锁 Curator 源码之二:可重入锁重复加锁和锁释放
热点0642686人已围观
简介...
前言
加锁逻辑已经介绍完毕,那当一个线程重复加锁是如何处理的呢?
1锁重入
在上一小节中Zo,可以看到加锁的过程,再回头看 internalLock 这个方法。
加锁成功之后,将当前线程oK放到 threadData 中,threadData 是 ConcurrentMap
假如锁重入了ee,直接就会在上一部分 lockData != null 被拦下,然后执行 lockData.lockpeCount.incrementAndGet();。
对 lockCount 自增,代表了锁重入。
这r 里发现了吧!Curator 的锁重入是在 Java 代码中实现的。
2锁释放
当锁需要释放的分布时候,只需要调用 lock.release() 进行释放即可,具体是如何释放的呢?
主要分式锁为两部分:
递减 threadData 中当前线程的加锁次数; 加锁次数大于 0,说明还剩余重入次数, C直接返回; 加锁次数等于 0,则 releaseLock 释放锁,并删除 threadData 中当ur前线程 key。
releaseLock 方法中就没有多少复杂逻辑了,就是移除监听器,删除临时顺at序节点。也就是 /locks/lock_01/_c_e855d232-c636-4241-bfor8e-f047939a5833-lock-0000000001。
3总结
ZooKeeper 的 源 InterProcessMutex 锁是通过 Java 代码中维护了一个 lockCount 来判断是码之否重入的。
Tags:
相关文章
人工智能在数据中心中的作用越来越大
热点随着世界努力应对数据海啸,数据中心也在快速发展。智能连接设备数量的快速增长和数据消耗的大量增加给基础数据中心基础架构带来了巨大压力。数据中心已经变得如此复杂,只有人类才能在不影响性能和效率水平的情况下...
【热点】
阅读更多Reddit 测试新功能:用户可在应用内阅读文章并查看评论
热点Reddit 近日宣布正在测试一项新功能,旨在提升用户阅读体验,同时为新闻出版商提供更多工具。该功能允许用户在 Reddit 应用内直接打开文章链接,并在页面底部查看其他用户的评论,用户可以在浏览文章...
【热点】
阅读更多云计算开发:Python练习实例-找到年龄最大的人,并输出
热点题目 :找到年龄最大的人,并输出。请找出程序中有什么问题。 程序分析 :在Person类中创建一个方法。 程序源代码 : 以上实例输出结果为 :...
【热点】
阅读更多
热门文章
最新文章
友情链接
- 标签: 康师傅
- https://www.londontheatredirect.com/search/谷歌留痕教程【tg:seogoogle987】,P5Q
- https://www.yidian51.com/taobao/谷歌留痕教程【tg:seogoogle987】,LKt
- https://www.teamlab.art/?submit=谷歌留痕教程【tg:seogoogle987】,nXR
- https://www.remit.co.jp/ne/?s=谷歌留痕教程【tg:seogoogle987】,YuP
- https://www.roberthalf.com/us/en/jobs/all/谷歌留痕教程【tg:seogoogle987】ExA
- https://www.temu.com/search_result.html?search_key=谷歌留痕教程【tg:seogoogle987】n4e
- https://www.varian.com/en-au/search?cat=113&search=谷歌留痕教程【tg:seogoogle987】,pic
- https://www.mygrandma.com/Items.aspx?search=谷歌留痕教程【tg:seogoogle987】,R2i
- https://www.remit.co.jp/pt/?action=CHECK&s=谷歌留痕教程【tg:seogoogle987】,s5n
- https://www.smarty.net/search?q=谷歌留痕教程【tg:seogoogle987】,Jpm
- https://www.qidulp.com/search?query=谷歌留痕教程【tg:seogoogle987】,rxO
- https://www.woorden.org/spreekwoord.php?woord=谷歌留痕教程【tg:seogoogle987】,1Ly
- https://www.openstreetmap.org/search?query=谷歌留痕教程【tg:seogoogle987】,NyD
- https://5gaa.org/?token=6e2l7hjt2i26gzgctgwdrv7v0j6nxorq&s=谷歌留痕教程【tg:seogoogle987】nJ6
- https://www.tombow.com/en/search/谷歌留痕教程【tg:seogoogle987】,bTg
- https://www.schenckprocess.com/search?q=谷歌留痕教程【tg:seogoogle987】,whK
- https://www.libros.unam.mx/catalogsearch/result/?cat=37&dir=asc&format=20&lit=20&manufacturer=3230&mode=list&order=year_edition&q=谷歌留痕教程【tg:seogoogle987】,h3Z
- https://www.navymwr.org/search/?query=谷歌留痕教程【tg:seogoogle987】,nNI
- https://www.southmeadows.co.uk/2019/07/?s=谷歌留痕教程【tg:seogoogle987】,T1O
- https://www.msrenewal.com/search/谷歌留痕教程【tg:seogoogle987】,shO
- https://www.lauben.com/en/?action=SEARCH&s=谷歌留痕教程【tg:seogoogle987】,sJp
- https://www.kaskus.co.id/search?q=谷歌留痕教程【tg:seogoogle987】,3sc
- https://www.teamlab.art/zh-hans/?submit=谷歌留痕教程【tg:seogoogle987】,VY1
- https://www.kyuhoshi.com/?s=谷歌留痕教程【tg:seogoogle987】,15d
- https://www.maine.gov/pfr/professionallicensing/search/node?keys=谷歌留痕教程【tg:seogoogle987】,nwR
- https://www.selfsufficientish.com/main/?s=谷歌留痕教程【tg:seogoogle987】,yJ8
- https://xehay.vn/tim-kiem/=谷歌留痕教程【tg:seogoogle987】,7zr
- https://www.teamlab.art/fr/?submit=谷歌留痕教程【tg:seogoogle987】,lkg
- https://www.lifesciencesweden.se/search?q=谷歌留痕教程【tg:seogoogle987】,IlE
- https://www.sogou.com/web?query=谷歌留痕教程【tg:seogoogle987】,EP6
- https://www.universal-music.co.jp/search/?q=谷歌留痕教程【tg:seogoogle987】,pXE
- https://store.line.me/search/sticker/ja?q=谷歌留痕教程【tg:seogoogle987】k3j
- https://www.paxnet.co.kr/search/jongmok?kwd=谷歌留痕教程【tg:seogoogle987】KYf
- https://www.metaltix.com/?view=tours&filter=search&q=谷歌留痕教程【tg:seogoogle987】,7br
- https://www.pacific-lifestyle.co.uk/search?sort=alphabetical&term=谷歌留痕教程【tg:seogoogle987】,n4b
- https://www.nytimes.com/search?dropmab=true&query=谷歌留痕教程【tg:seogoogle987】,K8U
- https://www.urmc.rochester.edu/news/search?q=谷歌留痕教程【tg:seogoogle987】,oDp
- https://www.nextavenue.org/?action=QUERY&s=谷歌留痕教程【tg:seogoogle987】,tcB
- https://www.target.com/s?searchTerm=谷歌留痕教程【tg:seogoogle987】,K3S
- https://www.l-and-b.jp/?page=1&s=谷歌留痕教程【tg:seogoogle987】,USM
- https://www.mintos.org/?s=谷歌留痕教程【tg:seogoogle987】,HpA
- https://www.therapeuticassociates.com/?cat=5&s=谷歌留痕教程【tg:seogoogle987】,uWx
- https://www.roblox.com/discover/?cat=107&Keyword=谷歌留痕教程【tg:seogoogle987】,6x8
- https://www.routesonline.com/search/?query=谷歌留痕教程【tg:seogoogle987】,AJQ
- https://www.rostaing.com/catalogsearch/result/?cat=22&q=谷歌留痕教程【tg:seogoogle987】,OLU
- https://www.yr.no/en/search?q=谷歌留痕教程【tg:seogoogle987】,dTA
- https://xn--lgernevedlystskoven-lxb.dk/search/谷歌留痕教程【tg:seogoogle987】,NmY
- https://www.nyif.com/catalogsearch/result/index/?f=sarbanesoxleyU&index=me_cms_pe&lit=20&mode=list&p=1&q=谷歌留痕教程【tg:seogoogle987】,T72
- https://www.revere.org/search?action=SEARCH&q=谷歌留痕教程【tg:seogoogle987】,Ees
- https://www.teamlab.art/ko/?submit=谷歌留痕教程【tg:seogoogle987】,Q3G