3个并发以上还能做到分布式锁的效果嘛?

3个并发以上还能做到分布式锁的效果嘛?

http://img1.sycdn.imooc.com//climg/611cbf610934a3d008550519.jpg

老师:我这里有一个疑问,用zookeeper实现分布式锁。

不是第一个节点,则监听第一个节点;

循环内断言,如果是第一个节点就监听,否则只是给lastNode赋值,其实永远也走不到index=1的循环,这里不纠结了;

问题来了:监听第一个节点,然后线程进入等待,监听第一个节点状态,发生改变就唤醒线程,直接返回true,如果这个时候是3个以上的并发,只监听第一个节点状态会不会有问题,就是第一个锁释放了,后续的线程都会同时执行?我仔细看了几遍,好像没有对这里进行处理。

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
凌波微步 2021-08-19 17:25:01

各个节点监听是链式的,并不是唤醒所有线程,而是唤醒下一个节点的线程。


监听是这样的:线程2件挺节点1、线程3件挺节点2、线程4监听节点3……

  • 提问者 玖支 #1

    您说的是zookeeper实现分布式锁的原理,这个是ok的,针对上面的代码逻辑,貌似是有点小问题,代码中只是对当前第一个节点监听

    2021-08-20 10:28:59
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师