RedisLock lock = new RedisLock(redisTemplate, taskId, 50000, 60000);
这是a服务端初始化锁
方法aMethod里面先加锁,lock.lock()然后在Amethod里面调用服务端b的方法bMethod
在进入bMethod方法也用了
RedisLock lock = new RedisLock(redisTemplate, taskId, 50000, 60000);
然后去lock,在本人的理解下aMethod还没有unlock,bMethod是获取不到锁的,
但是代码中却是这么写的,本人很不理解。
希望大佬说一下。redis是同一个。
我怎么柑橘没啥问题。对a方法加锁是a的锁,b方法加锁是b的锁,这个两个锁不存在你说的在a方法中调用b方法b方法就获取不到锁了。
锁级别是对象的,你去了解下吧。
锁的是taskId吧,这个redis的键就是锁对象,是共享的,RedisLock的lock()是怎么实现的?使用了synchronized吧,这是可重入锁,这么说能理解吗?