ZooKeeper 分布式锁 Curator 源码之二:可重入锁重复加锁和锁释放
前言
加锁逻辑已经介绍完毕,那当一个线程重复加锁是如何处理的呢?
1锁重入
在上一小节中Zo,可以看到加锁的过程,再回头看 internalLock 这个方法。
加锁成功之后,将当前线程放oK到 threadData 中,threadData 是 ConcurrentMap
假如锁重入了,直接ee就会在上一部分 lockData != null 被拦下,然后执行 lockData.lockCopeunt.incrementAndGet();。
对 lockCount 自增,代表了锁重入。
这r 里发现了吧!Curator 的锁重入是在 Java 代码中实现的。
2锁释放
当锁需要释放的时分布候,只需要调用 lock.release() 进行释放即可,具体是如何释放的呢?
主要分为两部分:
递式锁减 threadData 中当前线程的加锁次数; 加锁次数大于 0,说明还剩余重入次数,直接返 C回; 加锁次数等于 0,则 releaseLock 释放锁,并删除 threadData 中当前ur线程 key。
releaseLock 方法中就没有多少复杂逻辑了,就是移除监听器,删除临时顺at序节点。也就是 /locks/lock_01/_c_e855d232-c636-42or41-bf8e-f047939a5833-lock-0000000001。
3总结
ZooKe 源eper 的 InterProcessMutex 锁是通过 Java 代码中维护了一个 lockC码之ount 来判断是否重入的。
- ·面试官:如何管控数据?
- ·标签: 苹果 Q.ai AirPods Vision Pro
- ·OpenAI首席执行官访问韩国,与SK三星等讨论AI合作
- ·标签: 宁德时代 蔚来 换电 奥动新能源
- ·首款 AI Agent浏览器 Fellou CE发布,打造“无缝衔接”的体验
- ·英特尔新款数据中心芯片将于第一季度实现产能爬坡
- ·OpenAI 证实 ChatGPT 每周活跃用户突破8亿大关
- ·Rivian 再度推出新公司 Mind Robotics,聚焦工业 AI 与机器人技术
- ·Facebook 联同 MIT 等发布研究手稿:解释深度学习实际工作原理的理论
- ·云安全日报210709:IBM数据整合平台发现身份绕过,信息泄露漏洞,需要尽快升级
- ·云计算开发:Python3-rjust()方法详解
- ·谷歌推迟员工回归办公室时间到10月 必须接种疫苗
- ·无监督训练用堆叠自编码器是否落伍?ML博士对比了8个自编码器
- ·影响苹果电池健康度的因素有哪些呢?
- ·标签: 罗技G 罗技中国 上海百事得 抖音旗舰店
- ·可以考虑的7种云存储和文件共享服务
- ·https://www.paulaschoice.hk/zh_hant/catalogsearch/result/?q=谷歌外推搜索留痕技术【tg:seogoogle987】,oRq
- ·https://www.rostaing.com/catalogsearch/result/?cat=22&q=谷歌外推搜索留痕技术【tg:seogoogle987】,eqk
- ·https://www.otakuninjahero.com/en/search/谷歌外推搜索留痕技术【tg:seogoogle987】,rY9
- ·https://www.therapeuticassociates.com/?cat=5&s=谷歌外推搜索留痕技术【tg:seogoogle987】,UWx
- ·https://www.sonepar.ch/fr/search?q=谷歌外推搜索留痕技术【tg:seogoogle987】,qpC
- ·https://www.thedp.com/page/search?q=谷歌外推搜索留痕技术【tg:seogoogle987】,AVH
- ·https://www.kaskus.co.id/search?q=谷歌外推搜索留痕技术【tg:seogoogle987】,AZx
- ·https://www.rollingstone.it/?ID=DVMeu3AlmzZE1cuJ2FmgmO5TSCQRb3yh&s=谷歌外推搜索留痕技术【tg:seogoogle987】,fTv
- ·https://www.thealexandrian.net/?s=谷歌外推搜索留痕技术【tg:seogoogle987】,qDV
- ·https://hsmoa.com/search?query=谷歌外推搜索留痕技术【tg:seogoogle987】Dmk
