Class InterProcessMultiLock
java.lang.Object
org.apache.curator.framework.recipes.locks.InterProcessMultiLock
- All Implemented Interfaces:
InterProcessLock
-
Constructor Summary
ConstructorsConstructorDescriptionCreates a multi lock of any type of inter process lockInterProcessMultiLock(CuratorFramework client, List<String> paths) Creates a multi lock ofInterProcessMutexs -
Method Summary
Modifier and TypeMethodDescriptionvoidacquire()Acquire the mutex - blocking until it's available.booleanAcquire the mutex - blocks until it's available or the given time expires.booleanReturns true if the mutex is acquired by a thread in this JVMvoidrelease()Perform one release of the mutex.
-
Constructor Details
-
InterProcessMultiLock
Creates a multi lock ofInterProcessMutexs- Parameters:
client- the clientpaths- list of paths to manage in the order that they are to be locked
-
InterProcessMultiLock
Creates a multi lock of any type of inter process lock- Parameters:
locks- the locks
-
-
Method Details
-
acquire
Acquire the mutex - blocking until it's available. Each call to acquire must be balanced by a call toInterProcessLock.release()- Specified by:
acquirein interfaceInterProcessLock- Throws:
Exception- ZK errors, connection interruptions
-
acquire
Acquire 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:
Exception- ZK errors, connection interruptions
-
release
Perform one release of the mutex.NOTE: locks are released in the reverse order that they were acquired.
- Specified by:
releasein interfaceInterProcessLock- Throws:
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
-