public class BlockingAwareFuture<T> extends CompletableFuture<T>
CompletableFuture
that tracks whether the future or one of its descendants has been blocked on
a CompletableFuture.get()
or CompletableFuture.join()
call.CompletableFuture.AsynchronousCompletionTask
Constructor and Description |
---|
BlockingAwareFuture() |
allOf, anyOf, cancel, complete, completedFuture, completeExceptionally, exceptionally, getNow, getNumberOfDependents, isCancelled, isCompletedExceptionally, isDone, obtrudeException, obtrudeValue, runAsync, runAsync, supplyAsync, supplyAsync, toCompletableFuture, toString
public boolean isBlocked()
public T get() throws InterruptedException, ExecutionException
get
in interface Future<T>
get
in class CompletableFuture<T>
InterruptedException
ExecutionException
public T get(long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException
get
in interface Future<T>
get
in class CompletableFuture<T>
InterruptedException
ExecutionException
TimeoutException
public T join()
join
in class CompletableFuture<T>
public <U> CompletableFuture<U> thenApply(Function<? super T,? extends U> fn)
thenApply
in interface CompletionStage<T>
thenApply
in class CompletableFuture<T>
public <U> CompletableFuture<U> thenApplyAsync(Function<? super T,? extends U> fn)
thenApplyAsync
in interface CompletionStage<T>
thenApplyAsync
in class CompletableFuture<T>
public <U> CompletableFuture<U> thenApplyAsync(Function<? super T,? extends U> fn, Executor executor)
thenApplyAsync
in interface CompletionStage<T>
thenApplyAsync
in class CompletableFuture<T>
public CompletableFuture<Void> thenAccept(Consumer<? super T> action)
thenAccept
in interface CompletionStage<T>
thenAccept
in class CompletableFuture<T>
public CompletableFuture<Void> thenAcceptAsync(Consumer<? super T> action)
thenAcceptAsync
in interface CompletionStage<T>
thenAcceptAsync
in class CompletableFuture<T>
public CompletableFuture<Void> thenAcceptAsync(Consumer<? super T> action, Executor executor)
thenAcceptAsync
in interface CompletionStage<T>
thenAcceptAsync
in class CompletableFuture<T>
public CompletableFuture<Void> thenRun(Runnable action)
thenRun
in interface CompletionStage<T>
thenRun
in class CompletableFuture<T>
public CompletableFuture<Void> thenRunAsync(Runnable action)
thenRunAsync
in interface CompletionStage<T>
thenRunAsync
in class CompletableFuture<T>
public CompletableFuture<Void> thenRunAsync(Runnable action, Executor executor)
thenRunAsync
in interface CompletionStage<T>
thenRunAsync
in class CompletableFuture<T>
public <U,V> CompletableFuture<V> thenCombine(CompletionStage<? extends U> other, BiFunction<? super T,? super U,? extends V> fn)
thenCombine
in interface CompletionStage<T>
thenCombine
in class CompletableFuture<T>
public <U,V> CompletableFuture<V> thenCombineAsync(CompletionStage<? extends U> other, BiFunction<? super T,? super U,? extends V> fn)
thenCombineAsync
in interface CompletionStage<T>
thenCombineAsync
in class CompletableFuture<T>
public <U,V> CompletableFuture<V> thenCombineAsync(CompletionStage<? extends U> other, BiFunction<? super T,? super U,? extends V> fn, Executor executor)
thenCombineAsync
in interface CompletionStage<T>
thenCombineAsync
in class CompletableFuture<T>
public <U> CompletableFuture<Void> thenAcceptBoth(CompletionStage<? extends U> other, BiConsumer<? super T,? super U> action)
thenAcceptBoth
in interface CompletionStage<T>
thenAcceptBoth
in class CompletableFuture<T>
public <U> CompletableFuture<Void> thenAcceptBothAsync(CompletionStage<? extends U> other, BiConsumer<? super T,? super U> action)
thenAcceptBothAsync
in interface CompletionStage<T>
thenAcceptBothAsync
in class CompletableFuture<T>
public <U> CompletableFuture<Void> thenAcceptBothAsync(CompletionStage<? extends U> other, BiConsumer<? super T,? super U> action, Executor executor)
thenAcceptBothAsync
in interface CompletionStage<T>
thenAcceptBothAsync
in class CompletableFuture<T>
public CompletableFuture<Void> runAfterBoth(CompletionStage<?> other, Runnable action)
runAfterBoth
in interface CompletionStage<T>
runAfterBoth
in class CompletableFuture<T>
public CompletableFuture<Void> runAfterBothAsync(CompletionStage<?> other, Runnable action)
runAfterBothAsync
in interface CompletionStage<T>
runAfterBothAsync
in class CompletableFuture<T>
public CompletableFuture<Void> runAfterBothAsync(CompletionStage<?> other, Runnable action, Executor executor)
runAfterBothAsync
in interface CompletionStage<T>
runAfterBothAsync
in class CompletableFuture<T>
public <U> CompletableFuture<U> applyToEither(CompletionStage<? extends T> other, Function<? super T,U> fn)
applyToEither
in interface CompletionStage<T>
applyToEither
in class CompletableFuture<T>
public <U> CompletableFuture<U> applyToEitherAsync(CompletionStage<? extends T> other, Function<? super T,U> fn)
applyToEitherAsync
in interface CompletionStage<T>
applyToEitherAsync
in class CompletableFuture<T>
public <U> CompletableFuture<U> applyToEitherAsync(CompletionStage<? extends T> other, Function<? super T,U> fn, Executor executor)
applyToEitherAsync
in interface CompletionStage<T>
applyToEitherAsync
in class CompletableFuture<T>
public CompletableFuture<Void> acceptEither(CompletionStage<? extends T> other, Consumer<? super T> action)
acceptEither
in interface CompletionStage<T>
acceptEither
in class CompletableFuture<T>
public CompletableFuture<Void> acceptEitherAsync(CompletionStage<? extends T> other, Consumer<? super T> action)
acceptEitherAsync
in interface CompletionStage<T>
acceptEitherAsync
in class CompletableFuture<T>
public CompletableFuture<Void> acceptEitherAsync(CompletionStage<? extends T> other, Consumer<? super T> action, Executor executor)
acceptEitherAsync
in interface CompletionStage<T>
acceptEitherAsync
in class CompletableFuture<T>
public CompletableFuture<Void> runAfterEither(CompletionStage<?> other, Runnable action)
runAfterEither
in interface CompletionStage<T>
runAfterEither
in class CompletableFuture<T>
public CompletableFuture<Void> runAfterEitherAsync(CompletionStage<?> other, Runnable action)
runAfterEitherAsync
in interface CompletionStage<T>
runAfterEitherAsync
in class CompletableFuture<T>
public CompletableFuture<Void> runAfterEitherAsync(CompletionStage<?> other, Runnable action, Executor executor)
runAfterEitherAsync
in interface CompletionStage<T>
runAfterEitherAsync
in class CompletableFuture<T>
public <U> CompletableFuture<U> thenCompose(Function<? super T,? extends CompletionStage<U>> fn)
thenCompose
in interface CompletionStage<T>
thenCompose
in class CompletableFuture<T>
public <U> CompletableFuture<U> thenComposeAsync(Function<? super T,? extends CompletionStage<U>> fn)
thenComposeAsync
in interface CompletionStage<T>
thenComposeAsync
in class CompletableFuture<T>
public <U> CompletableFuture<U> thenComposeAsync(Function<? super T,? extends CompletionStage<U>> fn, Executor executor)
thenComposeAsync
in interface CompletionStage<T>
thenComposeAsync
in class CompletableFuture<T>
public CompletableFuture<T> whenComplete(BiConsumer<? super T,? super Throwable> action)
whenComplete
in interface CompletionStage<T>
whenComplete
in class CompletableFuture<T>
public CompletableFuture<T> whenCompleteAsync(BiConsumer<? super T,? super Throwable> action)
whenCompleteAsync
in interface CompletionStage<T>
whenCompleteAsync
in class CompletableFuture<T>
public CompletableFuture<T> whenCompleteAsync(BiConsumer<? super T,? super Throwable> action, Executor executor)
whenCompleteAsync
in interface CompletionStage<T>
whenCompleteAsync
in class CompletableFuture<T>
public <U> CompletableFuture<U> handle(BiFunction<? super T,Throwable,? extends U> fn)
handle
in interface CompletionStage<T>
handle
in class CompletableFuture<T>
public <U> CompletableFuture<U> handleAsync(BiFunction<? super T,Throwable,? extends U> fn)
handleAsync
in interface CompletionStage<T>
handleAsync
in class CompletableFuture<T>
public <U> CompletableFuture<U> handleAsync(BiFunction<? super T,Throwable,? extends U> fn, Executor executor)
handleAsync
in interface CompletionStage<T>
handleAsync
in class CompletableFuture<T>