您现在的位置是:貌合心离网 > 热点
ZooKeeper 分布式锁 Curator 源码之二:可重入锁重复加锁和锁释放
貌合心离网2026-11-13【热点】{固定数字1}人已围观
简介新梅金瓶
前言
加锁逻辑已经介绍完毕,那当一个线程重复加锁是如何处理的呢?
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-orbf8e-f047939a5833-lock-0000000001。
3总结
ZooKeeper 源 的 InterProcessMutex 锁是通过 Java 代码中维护了一个 lockCount码之 来判断是否重入的。
很赞哦!(9234647)
相关文章
- Sora路线图重大更新:推出“角色客串”功能,Android版本即将上线
- 标签: MiniMax Music2.6 国风音乐 游戏配乐
- 云计算的当今趋势和企业业务未来的发展
- 腾讯开源翻译巨头 Hunyuan-MT-7B:斩获 WMT2025 三十项冠军,翻译界的新霸主!
- 云安全日报210202:思科互联网产品和网络解决方案发现特权升级漏洞,需要尽快升级
- 标签: 马斯克 Optimus Grok Neuralink
- 云计算开发:Python内置函数-input() 函数详解
- 标签: 理想汽车 自动驾驶 勾晓菲 具身智能
- 零一万物辟谣,否认出售大模型预训练团队给阿里云
- 鑻规灉锛氳懀浜嬩細瀹e竷娲惧彂姣忚偂0.22缇庡厓鐜伴噾鑲℃伅







