采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
请问一下如果A加锁了之后,由于延迟使得A加锁超时,然后B成功加锁,于是A与B同时加锁成功的话不就因为并发使得数据混乱了吗
“由于延迟使得A加锁超时”?没看明白
但是因为延迟,假如线程A lock了之后、在unlock之前网络延迟或者Thread.sleeping,之后的线程B进入获取lock的方法里得到的结果是锁过期了,也拿到了锁。这样的话A和B不就都拿到了锁了吗
超时时间设置太短了,会出现你说的这种情况。对分布式锁感兴趣,可以看看redisson。还有这篇文章,供你参考 https://mp.weixin.qq.com/s/8fdBKAyHZrfHmSajXT_dnA
谢谢师兄
登录后可查看更多问答,登录/注册
从0到1开发中小型企业级Java应用,并学会迭代重构技巧
8.3k 10
3.3k 4
6.8k 9
2.0k 32
4.1k 26