public class RedissonMultiLock extends Object implements RLock
Constructor and Description |
---|
RedissonMultiLock(RLock... locks)
Creates instance with multiple
RLock objects. |
Modifier and Type | Method and Description |
---|---|
protected long |
calcLockWaitTime(long remainTime) |
protected int |
failedLocksLimit() |
boolean |
forceUnlock()
Unlocks lock independently of state
|
RFuture<Boolean> |
forceUnlockAsync()
Unlocks the lock independently of state
|
int |
getHoldCount()
Number of holds on this lock by the current thread
|
RFuture<Integer> |
getHoldCountAsync()
Number of holds on this lock by the current thread
|
String |
getName()
Returns name of object
|
boolean |
isHeldByCurrentThread()
Checks if this lock is held by the current thread
|
boolean |
isHeldByThread(long threadId)
Checks if this lock is held by the current thread
|
boolean |
isLocked()
Checks if this lock locked by any thread
|
RFuture<Boolean> |
isLockedAsync()
Checks if this lock locked by any thread
|
void |
lock() |
void |
lock(long leaseTime,
TimeUnit unit)
Acquires the lock.
|
RFuture<Void> |
lockAsync()
Acquires the lock.
|
RFuture<Void> |
lockAsync(long threadId)
Acquires the lock by thread with specified
threadId . |
RFuture<Void> |
lockAsync(long leaseTime,
TimeUnit unit)
Acquires the lock.
|
RFuture<Void> |
lockAsync(long leaseTime,
TimeUnit unit,
long threadId)
Acquires the lock by thread with specified
threadId . |
void |
lockInterruptibly() |
void |
lockInterruptibly(long leaseTime,
TimeUnit unit)
Acquires the lock.
|
Condition |
newCondition() |
long |
remainTimeToLive()
Remaining time to live of this lock
|
RFuture<Long> |
remainTimeToLiveAsync()
Remaining time to live of this lock
|
boolean |
tryLock() |
boolean |
tryLock(long waitTime,
long leaseTime,
TimeUnit unit)
Returns
true as soon as the lock is acquired. |
boolean |
tryLock(long waitTime,
TimeUnit unit) |
RFuture<Boolean> |
tryLockAsync()
Tries to acquire the lock.
|
RFuture<Boolean> |
tryLockAsync(long threadId)
Tries to acquire the lock by thread with specified
threadId . |
RFuture<Boolean> |
tryLockAsync(long waitTime,
long leaseTime,
TimeUnit unit)
Tries to acquire the lock.
|
RFuture<Boolean> |
tryLockAsync(long waitTime,
long leaseTime,
TimeUnit unit,
long threadId)
Tries to acquire the lock by thread with specified
threadId . |
protected void |
tryLockAsync(long threadId,
long leaseTime,
TimeUnit unit,
long waitTime,
RPromise<Void> result) |
RFuture<Boolean> |
tryLockAsync(long waitTime,
TimeUnit unit)
Tries to acquire the lock.
|
void |
unlock() |
RFuture<Void> |
unlockAsync()
Unlocks the lock
|
RFuture<Void> |
unlockAsync(long threadId)
Unlocks the lock.
|
protected void |
unlockInner(Collection<RLock> locks) |
protected RFuture<Void> |
unlockInnerAsync(Collection<RLock> locks,
long threadId) |
public void lock(long leaseTime, TimeUnit unit)
RLock
If the lock is not available then the current thread becomes
disabled for thread scheduling purposes and lies dormant until the
lock has been acquired.
If the lock is acquired, it is held until unlock
is invoked,
or until leaseTime milliseconds have passed
since the lock was granted - whichever comes first.
lock
in interface RLock
leaseTime
- the maximum time to hold the lock after granting it,
before automatically releasing it if it hasn't already been released by invoking unlock
.
If leaseTime is -1, hold the lock until explicitly unlocked.unit
- the time unit of the leaseTime
argumentpublic RFuture<Void> lockAsync(long leaseTime, TimeUnit unit)
RLockAsync
If the lock is not available then the current thread becomes
disabled for thread scheduling purposes and lies dormant until the
lock has been acquired.
If the lock is acquired, it is held until unlock
is invoked,
or until leaseTime milliseconds have passed
since the lock was granted - whichever comes first.
lockAsync
in interface RLockAsync
leaseTime
- the maximum time to hold the lock after granting it,
before automatically releasing it if it hasn't already been released by invoking unlock
.
If leaseTime is -1, hold the lock until explicitly unlocked.unit
- the time unit of the leaseTime
argumentpublic RFuture<Void> lockAsync(long leaseTime, TimeUnit unit, long threadId)
RLockAsync
threadId
.
If the lock is not available then the current thread becomes
disabled for thread scheduling purposes and lies dormant until the
lock has been acquired.
If the lock is acquired, it is held until unlock
is invoked,
or until leaseTime milliseconds have passed
since the lock was granted - whichever comes first.
lockAsync
in interface RLockAsync
leaseTime
- the maximum time to hold the lock after granting it,
before automatically releasing it if it hasn't already been released by invoking unlock
.
If leaseTime is -1, hold the lock until explicitly unlocked.unit
- the time unit of the leaseTime
argumentthreadId
- id of threadprotected void tryLockAsync(long threadId, long leaseTime, TimeUnit unit, long waitTime, RPromise<Void> result)
public void lockInterruptibly() throws InterruptedException
lockInterruptibly
in interface Lock
InterruptedException
public void lockInterruptibly(long leaseTime, TimeUnit unit) throws InterruptedException
RLock
If the lock is not available then the current thread becomes
disabled for thread scheduling purposes and lies dormant until the
lock has been acquired.
If the lock is acquired, it is held until unlock
is invoked,
or until leaseTime have passed
since the lock was granted - whichever comes first.
lockInterruptibly
in interface RLock
leaseTime
- the maximum time to hold the lock after granting it,
before automatically releasing it if it hasn't already been released by invoking unlock
.
If leaseTime is -1, hold the lock until explicitly unlocked.unit
- the time unit of the leaseTime
argumentInterruptedException
- - if the thread is interrupted before or during this method.protected void unlockInner(Collection<RLock> locks)
protected RFuture<Void> unlockInnerAsync(Collection<RLock> locks, long threadId)
public boolean tryLock(long waitTime, TimeUnit unit) throws InterruptedException
tryLock
in interface Lock
InterruptedException
protected int failedLocksLimit()
public boolean tryLock(long waitTime, long leaseTime, TimeUnit unit) throws InterruptedException
RLock
true
as soon as the lock is acquired.
If the lock is currently held by another thread in this or any
other process in the distributed system this method keeps trying
to acquire the lock for up to waitTime
before
giving up and returning false
. If the lock is acquired,
it is held until unlock
is invoked, or until leaseTime
have passed since the lock was granted - whichever comes first.tryLock
in interface RLock
waitTime
- the maximum time to aquire the lockleaseTime
- lease timeunit
- time unittrue
if lock has been successfully acquiredInterruptedException
- - if the thread is interrupted before or during this method.public RFuture<Boolean> tryLockAsync(long waitTime, long leaseTime, TimeUnit unit, long threadId)
RLockAsync
threadId
. If the lock is not available waits
up to specified waitTime
time interval to acquire it.
Lock will be release automatically after defined leaseTime
interval.tryLockAsync
in interface RLockAsync
waitTime
- time interval to acquire lockleaseTime
- time interval after which lock will be released automaticallyunit
- the time unit of the waitTime
and leaseTime
argumentsthreadId
- id of threadtrue
if lock acquired otherwise false
public RFuture<Boolean> tryLockAsync(long waitTime, long leaseTime, TimeUnit unit)
RLockAsync
waitTime
time interval to acquire it.
Lock will be release automatically after defined leaseTime
interval.tryLockAsync
in interface RLockAsync
waitTime
- time interval to acquire lockleaseTime
- time interval after which lock will be released automaticallyunit
- the time unit of the waitTime
and leaseTime
argumentstrue
if lock acquired otherwise false
protected long calcLockWaitTime(long remainTime)
public RFuture<Void> unlockAsync(long threadId)
RLockAsync
IllegalMonitorStateException
if lock isn't locked by thread with specified threadId
.unlockAsync
in interface RLockAsync
threadId
- id of threadpublic Condition newCondition()
newCondition
in interface Lock
public RFuture<Boolean> forceUnlockAsync()
RLockAsync
forceUnlockAsync
in interface RLockAsync
true
if lock existed and now unlocked otherwise false
public RFuture<Void> unlockAsync()
RLockAsync
unlockAsync
in interface RLockAsync
public RFuture<Boolean> tryLockAsync()
RLockAsync
tryLockAsync
in interface RLockAsync
true
if lock acquired otherwise false
public RFuture<Void> lockAsync()
RLockAsync
lockAsync
in interface RLockAsync
public RFuture<Void> lockAsync(long threadId)
RLockAsync
threadId
.lockAsync
in interface RLockAsync
threadId
- id of threadpublic RFuture<Boolean> tryLockAsync(long threadId)
RLockAsync
threadId
.tryLockAsync
in interface RLockAsync
threadId
- id of threadtrue
if lock acquired otherwise false
public RFuture<Boolean> tryLockAsync(long waitTime, TimeUnit unit)
RLockAsync
waitTime
time interval to acquire it.tryLockAsync
in interface RLockAsync
waitTime
- interval to acquire lockunit
- the time unit of the waitTime
argumenttrue
if lock acquired otherwise false
public RFuture<Integer> getHoldCountAsync()
RLockAsync
getHoldCountAsync
in interface RLockAsync
0
if this lock is not held by current threadpublic boolean forceUnlock()
RLock
forceUnlock
in interface RLock
true
if lock existed and now unlocked otherwise false
public boolean isLocked()
RLock
public RFuture<Boolean> isLockedAsync()
RLockAsync
isLockedAsync
in interface RLockAsync
true
if locked otherwise false
public boolean isHeldByThread(long threadId)
RLock
isHeldByThread
in interface RLock
threadId
- Thread ID of locking threadtrue
if held by given thread
otherwise false
public boolean isHeldByCurrentThread()
RLock
isHeldByCurrentThread
in interface RLock
true
if held by current thread
otherwise false
public int getHoldCount()
RLock
getHoldCount
in interface RLock
0
if this lock is not held by current threadpublic RFuture<Long> remainTimeToLiveAsync()
RLockAsync
remainTimeToLiveAsync
in interface RLockAsync
public long remainTimeToLive()
RLock
remainTimeToLive
in interface RLock
Copyright © 2014–2019 The Redisson Project. All rights reserved.