Using an instance of a
java.util.concurrent.CountDownLatch, we can wait for a latch to count down to zero, blocking the calling thread before continuing. When passing in a timeout, the method returns
true if the count reached zero or false if the timeout expires.
To make the timeout more explicit, the
CountDownLatchWithTimeout class will throw a
TimeoutException rather than force you to check. Using a static import, the example looks like the following.
1 2 3 4 5
The use of the
with method is required. Following the micro- DSL approach, it is the
with that actually does the waiting. Calling the
await method on it's own will not block.