Class InterProcessMultiLock
- java.lang.Object
-
- org.apache.curator.framework.recipes.locks.InterProcessMultiLock
-
- All Implemented Interfaces:
InterProcessLock
public class InterProcessMultiLock extends java.lang.Object implements InterProcessLock
-
-
Constructor Summary
Constructors Constructor Description InterProcessMultiLock(java.util.List<InterProcessLock> locks)Creates a multi lock of any type of inter process lockInterProcessMultiLock(org.apache.curator.framework.CuratorFramework client, java.util.List<java.lang.String> paths)Creates a multi lock ofInterProcessMutexs
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidacquire()Acquire the mutex - blocking until it's available.booleanacquire(long time, java.util.concurrent.TimeUnit unit)Acquire the mutex - blocks until it's available or the given time expires.booleanisAcquiredInThisProcess()Returns true if the mutex is acquired by a thread in this JVMvoidrelease()Perform one release of the mutex.
-
-
-
Constructor Detail
-
InterProcessMultiLock
public InterProcessMultiLock(org.apache.curator.framework.CuratorFramework client, java.util.List<java.lang.String> paths)Creates a multi lock ofInterProcessMutexs- Parameters:
client- the clientpaths- list of paths to manage in the order that they are to be locked
-
InterProcessMultiLock
public InterProcessMultiLock(java.util.List<InterProcessLock> locks)
Creates a multi lock of any type of inter process lock- Parameters:
locks- the locks
-
-
Method Detail
-
acquire
public void acquire() throws java.lang.ExceptionAcquire the mutex - blocking until it's available. Each call to acquire must be balanced by a call toInterProcessLock.release()- Specified by:
acquirein interfaceInterProcessLock- Throws:
java.lang.Exception- ZK errors, connection interruptions
-
acquire
public boolean acquire(long time, java.util.concurrent.TimeUnit unit) throws java.lang.ExceptionAcquire the mutex - blocks until it's available or the given time expires. Each call to acquire that returns true must be balanced by a call toInterProcessLock.release()- Specified by:
acquirein interfaceInterProcessLock- Parameters:
time- time to waitunit- time unit- Returns:
- true if the mutex was acquired, false if not
- Throws:
java.lang.Exception- ZK errors, connection interruptions
-
release
public void release() throws java.lang.ExceptionPerform one release of the mutex.NOTE: locks are released in the reverse order that they were acquired.
- Specified by:
releasein interfaceInterProcessLock- Throws:
java.lang.Exception- ZK errors, interruptions, current thread does not own the lock
-
isAcquiredInThisProcess
public boolean isAcquiredInThisProcess()
Description copied from interface:InterProcessLockReturns true if the mutex is acquired by a thread in this JVM- Specified by:
isAcquiredInThisProcessin interfaceInterProcessLock- Returns:
- true/false
-
-