总览
接口
一般情况下锁都会实现如下接口,如有特殊情况将在对应的锁文档中说明。
ts
export interface IRLock {
get clientId(): LockClientId;
tryLock(waitTime: RLockWaitTime, leaseTime: RLockLeaseTime, unit: TimeUnit): Promise<boolean>;
lock(): Promise<void>;
lock(leaseTime: RLockLeaseTime): Promise<void>;
lock(leaseTime: RLockLeaseTime, unit: TimeUnit): Promise<void>;
unlock(): Promise<void>;
forceUnlock(): Promise<boolean>;
isLocked(): Promise<boolean>;
}说明
下面对接口内的成员做简要说明,详细文档请看对应锁的文档。
IRLock.clientId:客户端 IDIRLock.tryLock(): 尝试加锁IRLock.lock(): 加锁,与tryLock的区别是lock将会持续等待到加锁成功。IRLock.unlock():解锁IRLock.forceUnlock():强制解锁,忽略锁持有状态IRLock.isLocked():获取锁状态