public class ZkDistributedLock
extends java.lang.Object
implements java.util.concurrent.locks.Lock, org.apache.zookeeper.Watcher
| 构造器和说明 |
|---|
ZkDistributedLock(java.lang.String lockName) |
| 限定符和类型 | 方法和说明 |
|---|---|
void |
lock()
获取锁, 如果当前非空闲, 则等待锁释放
由于 lock(); 方法如果在遇到阻塞情况将会一直等待下去(等待时间为Long.MAX_VALUE毫秒), 这可能会导致意想不到的情况
建议使用 tryLock(time, unit);
|
void |
lockInterruptibly() |
java.util.concurrent.locks.Condition |
newCondition() |
void |
process(org.apache.zookeeper.WatchedEvent event)
监听锁释放事件
|
boolean |
tryLock()
尝试获取锁, 直接返回是否成功
|
boolean |
tryLock(long time,
java.util.concurrent.TimeUnit unit)
尝试获取锁, 如果当前非空闲, 则等待, 如果在指定时间内还是未获取到锁, 则获取锁失败
|
void |
unlock()
释放当前锁
|
public ZkDistributedLock(java.lang.String lockName)
throws java.lang.InterruptedException,
java.io.IOException,
org.apache.zookeeper.KeeperException
java.lang.InterruptedExceptionjava.io.IOExceptionorg.apache.zookeeper.KeeperExceptionpublic void lock()
lock 在接口中 java.util.concurrent.locks.Lockpublic boolean tryLock(long time,
java.util.concurrent.TimeUnit unit)
throws java.lang.InterruptedException
tryLock 在接口中 java.util.concurrent.locks.Locktime - 时间unit - 时间单位java.lang.InterruptedException - epublic boolean tryLock()
tryLock 在接口中 java.util.concurrent.locks.Lockpublic void lockInterruptibly()
lockInterruptibly 在接口中 java.util.concurrent.locks.Lockpublic void unlock()
unlock 在接口中 java.util.concurrent.locks.Lockpublic java.util.concurrent.locks.Condition newCondition()
newCondition 在接口中 java.util.concurrent.locks.Lockpublic void process(org.apache.zookeeper.WatchedEvent event)
process 在接口中 org.apache.zookeeper.Watcherevent - 事件Copyright © 2019. All Rights Reserved.