关于双重防死锁的判断条件问题

来源:2-1 Lombok快速入门

曲线J

2019-10-31

https://coding.imooc.com/learn/questiondetail/123007.html
看到了这位同学的提问,老师回到说可以尝试获取一下锁。我觉得为null就不用尝试了吧,说明已经del了,直接可以进行关单的操作了。
我将代码改造成了下面的样子,老师帮忙看一下是否有什么问题。
图片描述

图片描述

写回答

2回答

曲线J

提问者

2019-11-01

老师好,我现在的疑问点是 我认为lockValueStr为null时,说明一个任务已经完成,删除了redis中的数据。这个时候应该是直接获取到锁,不用尝试。

你说的尝试去获取锁是相当于递归执行closeOrderTaskV3这个方法吗?

0
0

geelylucky

2019-10-31

这个同学说的其实是有道理的,假若在尝试获取锁的时候没有获取到,正好进入else的时候,锁被释放了,那么意味着其实还是可以再次尝试去获取锁的,这个逻辑是没有问题的。

0
0

Java企业级电商项目架构 Tomcat集群与Redis分布式

Tomcat集群+Redis分布式+代码重构+源码原理解析

2685 学习 · 947 问题

查看课程