加锁过程不是原子的,不会死锁吗?
来源:9-7 ZooKeeper集群的概念、节点角色和原理解析

czlee2023
2022-06-04
在获取到所有子节点后,在判断是不是要监听,恰好要监听的节点这时删除了,不就死锁了?
写回答
1回答
-
大能老师
2022-06-09
if(zkClient.exists(previousPath.get())) {
try {
countDownLatch.await();
} catch (InterruptedException e) {
e.printStackTrace();
}
}如果节点不存在则会放弃阻塞等待和节点的监听,转而进入下面lock()方法进行重新抢锁,具体代码已经更新到
com.sample.mall.common.zk.ZkLockV2
。这样就不会导致死锁了。00
相似问题