Package org.redisson.api
Interface RSemaphore
-
- All Superinterfaces:
RExpirable,RExpirableAsync,RObject,RObjectAsync,RSemaphoreAsync
- All Known Implementing Classes:
RedissonQueueSemaphore,RedissonSemaphore
public interface RSemaphore extends RExpirable, RSemaphoreAsync
Redis based implementation ofSemaphore.Works in non-fair mode. Therefore order of acquiring is unpredictable.
- Author:
- Nikita Koksharov
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description voidacquire()Acquires a permit.voidacquire(int permits)Acquires defined amount ofpermits.voidaddPermits(int permits)Increases or decreases the number of available permits by defined value.intavailablePermits()Returns amount of available permits.intdrainPermits()Acquires and returns all permits that are immediately available.voidrelease()Releases a permit.voidrelease(int permits)Releases defined amount ofpermits.booleantryAcquire()Tries to acquire currently available permit.booleantryAcquire(int permits)Tries to acquire defined amount of currently availablepermits.booleantryAcquire(int permits, long waitTime, TimeUnit unit)Tries to acquire defined amount of currently availablepermits.booleantryAcquire(long waitTime, TimeUnit unit)Tries to acquire currently available permit.booleantrySetPermits(int permits)Tries to set number of permits.-
Methods inherited from interface org.redisson.api.RExpirable
clearExpire, expire, expire, expireAt, expireAt, remainTimeToLive
-
Methods inherited from interface org.redisson.api.RExpirableAsync
clearExpireAsync, expireAsync, expireAsync, expireAtAsync, expireAtAsync, remainTimeToLiveAsync
-
Methods inherited from interface org.redisson.api.RObject
addListener, copy, delete, dump, getCodec, getIdleTime, getName, isExists, migrate, move, removeListener, rename, renamenx, restore, restore, restoreAndReplace, restoreAndReplace, sizeInMemory, touch, unlink
-
Methods inherited from interface org.redisson.api.RObjectAsync
addListenerAsync, copyAsync, deleteAsync, dumpAsync, getIdleTimeAsync, isExistsAsync, migrateAsync, moveAsync, removeListenerAsync, renameAsync, renamenxAsync, restoreAndReplaceAsync, restoreAndReplaceAsync, restoreAsync, restoreAsync, sizeInMemoryAsync, touchAsync, unlinkAsync
-
Methods inherited from interface org.redisson.api.RSemaphoreAsync
acquireAsync, acquireAsync, addPermitsAsync, availablePermitsAsync, drainPermitsAsync, releaseAsync, releaseAsync, tryAcquireAsync, tryAcquireAsync, tryAcquireAsync, tryAcquireAsync, trySetPermitsAsync
-
-
-
-
Method Detail
-
acquire
void acquire() throws InterruptedExceptionAcquires a permit. Waits if necessary until a permit became available.- Throws:
InterruptedException- if the current thread was interrupted
-
acquire
void acquire(int permits) throws InterruptedExceptionAcquires defined amount ofpermits. Waits if necessary until all permits became available.- Parameters:
permits- the number of permits to acquire- Throws:
InterruptedException- if the current thread is interruptedIllegalArgumentException- ifpermitsis negative
-
tryAcquire
boolean tryAcquire()
Tries to acquire currently available permit.- Returns:
trueif a permit was acquired andfalseotherwise
-
tryAcquire
boolean tryAcquire(int permits)
Tries to acquire defined amount of currently availablepermits.- Parameters:
permits- the number of permits to acquire- Returns:
trueif permits were acquired andfalseotherwise
-
tryAcquire
boolean tryAcquire(long waitTime, TimeUnit unit) throws InterruptedExceptionTries to acquire currently available permit. Waits up to definedwaitTimeif necessary until a permit became available.- Parameters:
waitTime- the maximum time to waitunit- the time unit- Returns:
trueif a permit was acquired andfalseotherwise- Throws:
InterruptedException- if the current thread was interrupted
-
tryAcquire
boolean tryAcquire(int permits, long waitTime, TimeUnit unit) throws InterruptedExceptionTries to acquire defined amount of currently availablepermits. Waits up to definedwaitTimeif necessary until all permits became available.- Parameters:
permits- amount of permitswaitTime- the maximum time to waitunit- the time unit- Returns:
trueif permits were acquired andfalseotherwise- Throws:
InterruptedException- if the current thread was interrupted
-
release
void release()
Releases a permit. Increases the number of available permits.
-
release
void release(int permits)
Releases defined amount ofpermits. Increases the number of available permits bypermitsamount.- Parameters:
permits- amount of permits
-
availablePermits
int availablePermits()
Returns amount of available permits.- Returns:
- number of permits
-
drainPermits
int drainPermits()
Acquires and returns all permits that are immediately available.- Returns:
- number of permits
-
trySetPermits
boolean trySetPermits(int permits)
Tries to set number of permits.- Parameters:
permits- - number of permits- Returns:
trueif permits has been set successfully, otherwisefalseif permits were already set.
-
addPermits
void addPermits(int permits)
Increases or decreases the number of available permits by defined value.- Parameters:
permits- amount of permits to add/remove
-
-