CountDownLatch with the ability to change the number of waiting parties
Modifiers | Name | Description |
---|---|---|
private static class |
ResizeableCountDownLatch.Sync |
Synchronization control For CountDownLatch. |
Modifiers | Name | Description |
---|---|---|
private ResizeableCountDownLatch.Sync |
sync |
Constructor and description |
---|
ResizeableCountDownLatch
() |
Type | Name and description |
---|---|
java.lang.Object |
ResizeableCountDownLatch(int count) Constructs a CountDownLatch initialized with the given count. |
boolean |
attemptToCountDownAndAwait(long timeout) Attempts to atomically count down the latch and await release with a timeout. |
void |
await() Causes the current thread to wait until the latch has counted down to zero, unless the thread is {@linkplain Thread#interrupt interrupted}. |
boolean |
await(long timeout, java.util.concurrent.TimeUnit unit) Causes the current thread to wait until the latch has counted down to zero, unless the thread is {@linkplain Thread#interrupt interrupted}, or the specified waiting time elapses. |
void |
countDown() Decrements the count of the latch, releasing all waiting threads if the count reaches zero. |
void |
decreaseCount() |
long |
getCount() Returns the current count. |
void |
increaseCount() |
boolean |
isReleasedFlag() |
java.lang.String |
toString() Returns a string identifying this latch, as well as its state. |
Methods inherited from class | Name |
---|---|
class java.lang.Object |
java.lang.Object#wait(), java.lang.Object#wait(long, int), java.lang.Object#wait(long), java.lang.Object#equals(java.lang.Object), java.lang.Object#toString(), java.lang.Object#hashCode(), java.lang.Object#getClass(), java.lang.Object#notify(), java.lang.Object#notifyAll() |
Constructs a CountDownLatch
initialized with the given count.
count
is negativeAttempts to atomically count down the latch and await release with a timeout. If the timeout expires, the count is increased and the latch is re-tested before reporting failed timeout.
timeout
- The time in nanoseconds to awaitCauses the current thread to wait until the latch has counted down to zero, unless the thread is {
If the current count is zero then this method returns immediately.
If the current count is greater than zero then the current thread becomes disabled for thread scheduling purposes and lies dormant until one of two things happen:
If the current thread:
then java.lang.InterruptedException is thrown and the current thread's interrupted status is cleared.
Causes the current thread to wait until the latch has counted down to zero, unless the thread is {
If the current count is zero then this method returns immediately
with the value true
.
If the current count is greater than zero then the current thread becomes disabled for thread scheduling purposes and lies dormant until one of three things happen:
If the count reaches zero then the method returns with the
value true
.
If the current thread:
then java.lang.InterruptedException is thrown and the current thread's interrupted status is cleared.
If the specified waiting time elapses then the value false
is returned. If the time is less than or equal to zero, the method
will not wait at all.
true
if the count reached zero and false
if the waiting time elapsed before the count reached zerotimeout
- the maximum time to waitunit
- the time unit of the timeout
argumentDecrements the count of the latch, releasing all waiting threads if the count reaches zero.
If the current count is greater than zero then it is decremented. If the new count is zero then all waiting threads are re-enabled for thread scheduling purposes.
If the current count equals zero then nothing happens.
Returns the current count.
This method is typically used for debugging and testing purposes.
Returns a string identifying this latch, as well as its state.
The state, in brackets, includes the String "Count ="
followed by the current count.
Copyright © 2008–2014 Václav Pech. All Rights Reserved.