boolean res = lock.tryLock(100, 10, TimeUnit.SECONDS);
RedissonLock里面有这样一个方法tryLock(),意思是尝试获取锁的结果。
最大等待时间100s,并且获取到锁之后,10s之内没有释放的话,锁会自动失效。

尝试获取锁超时
time = waitTime,是我们指定的最大的等待获取锁的时间,比如是100秒
current = 第一次尝试获取锁之前的一个时间戳
当前时间减去current = 第一次获取锁耗费的时间,假设是1秒
time -= 第一次获取锁耗费的时间 = 100秒 - 1秒 = 99秒,最多再等待99秒尝试获取这个锁,如果第一次获取锁的时间直接超过了waitTime等待最大超时时间,就会直接标记为获取锁失败
current = 当前时间
final RFuture<RedissonLockEntry> subscribeFuture = subscribe(threadId);
if (!await(subscribeFuture, time, TimeUnit.
Redis锁超时机制与自动释放原理

最低0.47元/天 解锁文章
928

被折叠的 条评论
为什么被折叠?



