timed blocking operation
Thread.join(long)
Object.wait(long)
ExecutorService.awaitTermination(long, TimeUnit)
InterruptedException
Awaitable operations
awaitMultipe(...) functions
object
Awaitable operation
awaitMultiple(...)
Awaitable
Callable
ConcurrentUtils.completableFutureSupplyAsync(Callable, Executor)
Thread
ByteArrayOutputStream
access its underlying buffer
ScheduledThreadPoolExecutor
TaskTrackingExecutor
RunnableScheduledFuture
ExecutorService
attempt to force terminate
TaskTrackingExecutor.tryForceTerminate()
ThreadPoolExecutor