public interface DLock extends Lock
| 限定符和类型 | 方法和说明 |
|---|---|
void |
forceUnlock() |
void |
lock()
已过时。
该方法故意设置为 deprecated, 原因是 该方法 该方法继承自
Lock.lock(),
在没有拿到锁的时候,会死等,直到拿到锁为止。
在分布式场景下要慎用,甚至不要去使用。除非场景必须这样做才去选用。
|
void |
lock(long ttl,
TimeUnit ttlUnit,
boolean interruptibly)
没拿到锁之前死等,拿到锁之后,在指定的 ttl 时间后,锁自动过期。
|
void |
lockInterruptibly() |
boolean |
tryLock()
只进行一次尝试,锁成功 返回 true, 否则返回false
|
boolean |
tryLock(long tryTime,
TimeUnit tryTimeUnit) |
boolean |
tryLock(long tryTime,
TimeUnit tryTimeUnit,
long ttl,
TimeUnit ttlUnit)
拿到锁之前,最多尝试 lockTime 时间,拿到锁之后,锁在 ttl 后过期
|
boolean |
tryLock(long tryTime,
TimeUnit tryTimeUnit,
long ttl,
TimeUnit ttlUnit,
boolean interruptibly) |
newCondition, unlockvoid lock()
Lock.lock(),
在没有拿到锁的时候,会死等,直到拿到锁为止。
在分布式场景下要慎用,甚至不要去使用。除非场景必须这样做才去选用。
void lockInterruptibly()
throws InterruptedException
lockInterruptibly 在接口中 LockInterruptedExceptionvoid lock(long ttl,
TimeUnit ttlUnit,
boolean interruptibly)
throws InterruptedException
ttl - 指定的锁定时间,即拿到锁后过期时间ttlUnit - 单位interruptibly - 在尝试加锁期间,能否被打断InterruptedException - 锁住后,被打断时,抛出该异常boolean tryLock(long tryTime,
@Nullable
TimeUnit tryTimeUnit,
long ttl,
@Nullable
TimeUnit ttlUnit)
tryTime - 尝试获取锁的时间tryTimeUnit - 单位ttl - 拿到锁之后,锁的过期时间ttlUnit - 单位boolean tryLock(long tryTime,
@Nullable
TimeUnit tryTimeUnit,
long ttl,
@Nullable
TimeUnit ttlUnit,
boolean interruptibly)
throws InterruptedException
void forceUnlock()
Copyright © 2022. All rights reserved.