Java-分布式锁tryLock(0, TimeUnit.SECONDS)中0的含义
1. tryLock(0, TimeUnit.SECONDS)
中 0
的含义
// 参数定义
boolean tryLock(long waitTime, TimeUnit unit);
// 具体调用
redissonLock.tryLock(0, TimeUnit.SECONDS);
参数 | 作用 |
---|---|
第一个0 | 表示尝试获取锁的最大等待时间(单位由TimeUnit 指定),此处为0秒 |
效果 | 线程不会等待锁释放,立即尝试一次获取,若锁被占用则直接失败 |
2. 能否改为100秒?
// 修改后的代码
boolean isLocked = redissonLock.tryLock(100, TimeUnit.SECONDS);
可行性 | 影响 |
---|---|
✅ 允许 | 线程会持续尝试获取锁 |