您的当前位置:首页 > 热点 > ZooKeeper 分布式锁 Curator 源码之二:可重入锁重复加锁和锁释放 正文
时间:2026-11-14 来源:网络整理 编辑:热点
谷歌蜘蛛池租用【tg:seogoogle987】
前言
加锁逻辑已经介绍完毕,那当一个线程重复加锁是如何处理的呢?
1锁重入
在上一小节中Zo,可以看到加锁的过程,再回头看 internalLock 这个方法。
加锁成功之后,将当oK前线程放到 threadData 中,threadData 是 ConcurrentMap
假如锁ee重入了,直接就会在上一部分 lockData != null 被拦下,然后执行 lockData.pelockCount.incrementAndGet();。
对 lockCount 自增r ,代表了锁重入。
这里发现了吧!Curator 的锁重入是在 Java 代码中实现的。
2锁分布释放
当锁需要释放的时候,只需要调用 lock.release() 进行释放即可,具体是如何释式锁放的呢?
主要分为两部分:
递减 threadData 中当前线程的加锁次数; 加锁次数大于 0,说 C明还剩余重入次数,直接返回; 加锁次数等于 0,则 releaseLock 释放锁,并删除 thurreadData 中当前线程 key。
releaseLock 方法中就没有多少复杂逻辑了at,就是移除监听器,删除临时顺序节点。也就是 /locks/lock_01/_c_e855ord232-c636-4241-bf8e-f047939a5833-lock-00000000 源01。
3总结
ZooKeeper 的 InterProcessMutex 锁是通过 Java 代码中维护码之了一个 lockCount 来判断是否重入的。
谷歌推新AI学习工具Learn Your Way,用 AI 打造个性化教科书2026-08-04
标签: 智谱 滴滴 AGI 智能体2026-11-06
稚晖君又放大招!灵创平台让机器人编程秒变"拖拽游戏"2026-08-05
谷歌CEO皮查伊去年薪酬总额仅743万美元 未获股票奖励2026-07-05
人工智能2.0时代,如何为机器安装智慧大脑2026-10-24
谷歌斥资超2700万欧元在芬兰购地,推进云计算和数据基础设施扩建计划2026-10-16
被指控在“国会骚乱”期间助长暴力,Twitter和FB股价双双下跌2026-10-03
标签: 比亚迪 刀片电池 天神之眼 仰望2026-11-13
谷歌部分员工申请远程办公或者更换办公点 85%获批2026-09-27
定了!张勇发全员信:阿里云将分拆上市2026-09-28
标签: SpaceX 马斯克 特斯拉 Megapack2026-07-25
图文理解 Spark 3.0 的动态分区裁剪优化2026-08-27
英伟达拟向OpenAI投资1000亿美元,建设AI数据中心2026-09-18
标签: 腾讯 喜马拉雅 市场监管总局 在线音频2026-05-25
英国 NHS 医院将测试 AI 工具以改善前列腺癌诊断与治疗2026-09-10
标签: 智谱 AutoClaw 澳龙 OpenClaw2026-08-15
亚马逊敦促法官撤销美国防部授予微软的100亿美元云计算合同2026-08-21
OpenAI 收入预测剑指1000亿美元,欲创科技史上最快增长神话2026-08-30
标签: 死了么 APP 95后团队 付费软件2026-11-06
标签: 微信小游戏 IAA 腾讯 翁裕淦2026-06-11