timed blocking operation
Thread.join(long)
Object.wait(long)
ExecutorService.awaitTermination(long, TimeUnit)
InterruptedException
Awaitable operations
awaitMultipe(...)
object
Awaitable operation
awaitMultiple(...)
Awaitable
Callable
Executor.execute(Runnable)
CompletableFuture
CallableTaskExecution
Thread
ByteArrayOutputStream
access its underlying buffer
the underlying output stream
written
the added buckets
ScheduledThreadPoolExecutor
TaskTrackingExecutor
RunnableScheduledFuture
ExecutorService
attempt to force terminate
TaskTrackingExecutor.tryForceTerminate()
TaskTrackingExecutor.TaskTrackingExecutorDecorator.TrackableTask
ThreadPoolExecutor