| Package | Description | 
|---|---|
| java.util.concurrent | 
 Utility classes commonly useful in concurrent programming. 
 | 
| Modifier and Type | Class and Description | 
|---|---|
class  | 
CompletableFuture<T>
A  
Future that may be explicitly completed (setting its
 value and status), and may be used as a CompletionStage,
 supporting dependent functions and actions that trigger upon its
 completion. | 
| Modifier and Type | Method and Description | 
|---|---|
CompletionStage<Void> | 
CompletionStage.acceptEither(CompletionStage<? extends T> other,
            Consumer<? super T> action)
Returns a new CompletionStage that, when either this or the
 other given stage complete normally, is executed with the
 corresponding result as argument to the supplied action. 
 | 
CompletionStage<Void> | 
CompletionStage.acceptEitherAsync(CompletionStage<? extends T> other,
                 Consumer<? super T> action)
Returns a new CompletionStage that, when either this or the
 other given stage complete normally, is executed using this
 stage's default asynchronous execution facility, with the
 corresponding result as argument to the supplied action. 
 | 
CompletionStage<Void> | 
CompletionStage.acceptEitherAsync(CompletionStage<? extends T> other,
                 Consumer<? super T> action,
                 Executor executor)
Returns a new CompletionStage that, when either this or the
 other given stage complete normally, is executed using the
 supplied executor, with the corresponding result as argument to
 the supplied function. 
 | 
<U> CompletionStage<U> | 
CompletionStage.applyToEither(CompletionStage<? extends T> other,
             Function<? super T,U> fn)
Returns a new CompletionStage that, when either this or the
 other given stage complete normally, is executed with the
 corresponding result as argument to the supplied function. 
 | 
<U> CompletionStage<U> | 
CompletionStage.applyToEitherAsync(CompletionStage<? extends T> other,
                  Function<? super T,U> fn)
Returns a new CompletionStage that, when either this or the
 other given stage complete normally, is executed using this
 stage's default asynchronous execution facility, with the
 corresponding result as argument to the supplied function. 
 | 
<U> CompletionStage<U> | 
CompletionStage.applyToEitherAsync(CompletionStage<? extends T> other,
                  Function<? super T,U> fn,
                  Executor executor)
Returns a new CompletionStage that, when either this or the
 other given stage complete normally, is executed using the
 supplied executor, with the corresponding result as argument to
 the supplied function. 
 | 
CompletionStage<T> | 
CompletionStage.exceptionally(Function<Throwable,? extends T> fn)
Returns a new CompletionStage that, when this stage completes
 exceptionally, is executed with this stage's exception as the
 argument to the supplied function. 
 | 
<U> CompletionStage<U> | 
CompletionStage.handle(BiFunction<? super T,Throwable,? extends U> fn)
Returns a new CompletionStage that, when this stage completes
 either normally or exceptionally, is executed with this stage's
 result and exception as arguments to the supplied function. 
 | 
<U> CompletionStage<U> | 
CompletionStage.handleAsync(BiFunction<? super T,Throwable,? extends U> fn)
Returns a new CompletionStage that, when this stage completes
 either normally or exceptionally, is executed using this stage's
 default asynchronous execution facility, with this stage's
 result and exception as arguments to the supplied function. 
 | 
<U> CompletionStage<U> | 
CompletionStage.handleAsync(BiFunction<? super T,Throwable,? extends U> fn,
           Executor executor)
Returns a new CompletionStage that, when this stage completes
 either normally or exceptionally, is executed using the
 supplied executor, with this stage's result and exception as
 arguments to the supplied function. 
 | 
CompletionStage<Void> | 
CompletionStage.runAfterBoth(CompletionStage<?> other,
            Runnable action)
Returns a new CompletionStage that, when this and the other
 given stage both complete normally, executes the given action. 
 | 
CompletionStage<Void> | 
CompletionStage.runAfterBothAsync(CompletionStage<?> other,
                 Runnable action)
Returns a new CompletionStage that, when this and the other
 given stage complete normally, executes the given action using
 this stage's default asynchronous execution facility. 
 | 
CompletionStage<Void> | 
CompletionStage.runAfterBothAsync(CompletionStage<?> other,
                 Runnable action,
                 Executor executor)
Returns a new CompletionStage that, when this and the other
 given stage complete normally, executes the given action using
 the supplied executor
 See the  
CompletionStage documentation for rules
 covering exceptional completion. | 
CompletionStage<Void> | 
CompletionStage.runAfterEither(CompletionStage<?> other,
              Runnable action)
Returns a new CompletionStage that, when either this or the
 other given stage complete normally, executes the given action. 
 | 
CompletionStage<Void> | 
CompletionStage.runAfterEitherAsync(CompletionStage<?> other,
                   Runnable action)
Returns a new CompletionStage that, when either this or the
 other given stage complete normally, executes the given action
 using this stage's default asynchronous execution facility. 
 | 
CompletionStage<Void> | 
CompletionStage.runAfterEitherAsync(CompletionStage<?> other,
                   Runnable action,
                   Executor executor)
Returns a new CompletionStage that, when either this or the
 other given stage complete normally, executes the given action
 using supplied executor. 
 | 
CompletionStage<Void> | 
CompletionStage.thenAccept(Consumer<? super T> action)
Returns a new CompletionStage that, when this stage completes
 normally, is executed with this stage's result as the argument
 to the supplied action. 
 | 
CompletionStage<Void> | 
CompletionStage.thenAcceptAsync(Consumer<? super T> action)
Returns a new CompletionStage that, when this stage completes
 normally, is executed using this stage's default asynchronous
 execution facility, with this stage's result as the argument to
 the supplied action. 
 | 
CompletionStage<Void> | 
CompletionStage.thenAcceptAsync(Consumer<? super T> action,
               Executor executor)
Returns a new CompletionStage that, when this stage completes
 normally, is executed using the supplied Executor, with this
 stage's result as the argument to the supplied action. 
 | 
<U> CompletionStage<Void> | 
CompletionStage.thenAcceptBoth(CompletionStage<? extends U> other,
              BiConsumer<? super T,? super U> action)
Returns a new CompletionStage that, when this and the other
 given stage both complete normally, is executed with the two
 results as arguments to the supplied action. 
 | 
<U> CompletionStage<Void> | 
CompletionStage.thenAcceptBothAsync(CompletionStage<? extends U> other,
                   BiConsumer<? super T,? super U> action)
Returns a new CompletionStage that, when this and the other
 given stage complete normally, is executed using this stage's
 default asynchronous execution facility, with the two results
 as arguments to the supplied action. 
 | 
<U> CompletionStage<Void> | 
CompletionStage.thenAcceptBothAsync(CompletionStage<? extends U> other,
                   BiConsumer<? super T,? super U> action,
                   Executor executor)
Returns a new CompletionStage that, when this and the other
 given stage complete normally, is executed using the supplied
 executor, with the two results as arguments to the supplied
 function. 
 | 
<U> CompletionStage<U> | 
CompletionStage.thenApply(Function<? super T,? extends U> fn)
Returns a new CompletionStage that, when this stage completes
 normally, is executed with this stage's result as the argument
 to the supplied function. 
 | 
<U> CompletionStage<U> | 
CompletionStage.thenApplyAsync(Function<? super T,? extends U> fn)
Returns a new CompletionStage that, when this stage completes
 normally, is executed using this stage's default asynchronous
 execution facility, with this stage's result as the argument to
 the supplied function. 
 | 
<U> CompletionStage<U> | 
CompletionStage.thenApplyAsync(Function<? super T,? extends U> fn,
              Executor executor)
Returns a new CompletionStage that, when this stage completes
 normally, is executed using the supplied Executor, with this
 stage's result as the argument to the supplied function. 
 | 
<U,V> CompletionStage<V> | 
CompletionStage.thenCombine(CompletionStage<? extends U> other,
           BiFunction<? super T,? super U,? extends V> fn)
Returns a new CompletionStage that, when this and the other
 given stage both complete normally, is executed with the two
 results as arguments to the supplied function. 
 | 
<U,V> CompletionStage<V> | 
CompletionStage.thenCombineAsync(CompletionStage<? extends U> other,
                BiFunction<? super T,? super U,? extends V> fn)
Returns a new CompletionStage that, when this and the other
 given stage complete normally, is executed using this stage's
 default asynchronous execution facility, with the two results
 as arguments to the supplied function. 
 | 
<U,V> CompletionStage<V> | 
CompletionStage.thenCombineAsync(CompletionStage<? extends U> other,
                BiFunction<? super T,? super U,? extends V> fn,
                Executor executor)
Returns a new CompletionStage that, when this and the other
 given stage complete normally, is executed using the supplied
 executor, with the two results as arguments to the supplied
 function. 
 | 
<U> CompletionStage<U> | 
CompletionStage.thenCompose(Function<? super T,? extends CompletionStage<U>> fn)
Returns a new CompletionStage that, when this stage completes
 normally, is executed with this stage as the argument
 to the supplied function. 
 | 
<U> CompletionStage<U> | 
CompletionStage.thenComposeAsync(Function<? super T,? extends CompletionStage<U>> fn)
Returns a new CompletionStage that, when this stage completes
 normally, is executed using this stage's default asynchronous
 execution facility, with this stage as the argument to the
 supplied function. 
 | 
<U> CompletionStage<U> | 
CompletionStage.thenComposeAsync(Function<? super T,? extends CompletionStage<U>> fn,
                Executor executor)
Returns a new CompletionStage that, when this stage completes
 normally, is executed using the supplied Executor, with this
 stage's result as the argument to the supplied function. 
 | 
CompletionStage<Void> | 
CompletionStage.thenRun(Runnable action)
Returns a new CompletionStage that, when this stage completes
 normally, executes the given action. 
 | 
CompletionStage<Void> | 
CompletionStage.thenRunAsync(Runnable action)
Returns a new CompletionStage that, when this stage completes
 normally, executes the given action using this stage's default
 asynchronous execution facility. 
 | 
CompletionStage<Void> | 
CompletionStage.thenRunAsync(Runnable action,
            Executor executor)
Returns a new CompletionStage that, when this stage completes
 normally, executes the given action using the supplied Executor. 
 | 
CompletionStage<T> | 
CompletionStage.whenComplete(BiConsumer<? super T,? super Throwable> action)
Returns a new CompletionStage with the same result or exception
 as this stage, and when this stage completes, executes the
 given action with the result (or  
null if none) and the
 exception (or null if none) of this stage. | 
CompletionStage<T> | 
CompletionStage.whenCompleteAsync(BiConsumer<? super T,? super Throwable> action)
Returns a new CompletionStage with the same result or exception
 as this stage, and when this stage completes, executes the
 given action executes the given action using this stage's
 default asynchronous execution facility, with the result (or
  
null if none) and the exception (or null if
 none) of this stage as arguments. | 
CompletionStage<T> | 
CompletionStage.whenCompleteAsync(BiConsumer<? super T,? super Throwable> action,
                 Executor executor)
Returns a new CompletionStage with the same result or exception
 as this stage, and when this stage completes, executes using
 the supplied Executor, the given action with the result (or
  
null if none) and the exception (or null if
 none) of this stage as arguments. | 
| Modifier and Type | Method and Description | 
|---|---|
CompletableFuture<Void> | 
CompletableFuture.acceptEither(CompletionStage<? extends T> other,
            Consumer<? super T> action)  | 
CompletionStage<Void> | 
CompletionStage.acceptEither(CompletionStage<? extends T> other,
            Consumer<? super T> action)
Returns a new CompletionStage that, when either this or the
 other given stage complete normally, is executed with the
 corresponding result as argument to the supplied action. 
 | 
CompletableFuture<Void> | 
CompletableFuture.acceptEitherAsync(CompletionStage<? extends T> other,
                 Consumer<? super T> action)  | 
CompletionStage<Void> | 
CompletionStage.acceptEitherAsync(CompletionStage<? extends T> other,
                 Consumer<? super T> action)
Returns a new CompletionStage that, when either this or the
 other given stage complete normally, is executed using this
 stage's default asynchronous execution facility, with the
 corresponding result as argument to the supplied action. 
 | 
CompletableFuture<Void> | 
CompletableFuture.acceptEitherAsync(CompletionStage<? extends T> other,
                 Consumer<? super T> action,
                 Executor executor)  | 
CompletionStage<Void> | 
CompletionStage.acceptEitherAsync(CompletionStage<? extends T> other,
                 Consumer<? super T> action,
                 Executor executor)
Returns a new CompletionStage that, when either this or the
 other given stage complete normally, is executed using the
 supplied executor, with the corresponding result as argument to
 the supplied function. 
 | 
<U> CompletableFuture<U> | 
CompletableFuture.applyToEither(CompletionStage<? extends T> other,
             Function<? super T,U> fn)  | 
<U> CompletionStage<U> | 
CompletionStage.applyToEither(CompletionStage<? extends T> other,
             Function<? super T,U> fn)
Returns a new CompletionStage that, when either this or the
 other given stage complete normally, is executed with the
 corresponding result as argument to the supplied function. 
 | 
<U> CompletableFuture<U> | 
CompletableFuture.applyToEitherAsync(CompletionStage<? extends T> other,
                  Function<? super T,U> fn)  | 
<U> CompletionStage<U> | 
CompletionStage.applyToEitherAsync(CompletionStage<? extends T> other,
                  Function<? super T,U> fn)
Returns a new CompletionStage that, when either this or the
 other given stage complete normally, is executed using this
 stage's default asynchronous execution facility, with the
 corresponding result as argument to the supplied function. 
 | 
<U> CompletableFuture<U> | 
CompletableFuture.applyToEitherAsync(CompletionStage<? extends T> other,
                  Function<? super T,U> fn,
                  Executor executor)  | 
<U> CompletionStage<U> | 
CompletionStage.applyToEitherAsync(CompletionStage<? extends T> other,
                  Function<? super T,U> fn,
                  Executor executor)
Returns a new CompletionStage that, when either this or the
 other given stage complete normally, is executed using the
 supplied executor, with the corresponding result as argument to
 the supplied function. 
 | 
CompletableFuture<Void> | 
CompletableFuture.runAfterBoth(CompletionStage<?> other,
            Runnable action)  | 
CompletionStage<Void> | 
CompletionStage.runAfterBoth(CompletionStage<?> other,
            Runnable action)
Returns a new CompletionStage that, when this and the other
 given stage both complete normally, executes the given action. 
 | 
CompletableFuture<Void> | 
CompletableFuture.runAfterBothAsync(CompletionStage<?> other,
                 Runnable action)  | 
CompletionStage<Void> | 
CompletionStage.runAfterBothAsync(CompletionStage<?> other,
                 Runnable action)
Returns a new CompletionStage that, when this and the other
 given stage complete normally, executes the given action using
 this stage's default asynchronous execution facility. 
 | 
CompletableFuture<Void> | 
CompletableFuture.runAfterBothAsync(CompletionStage<?> other,
                 Runnable action,
                 Executor executor)  | 
CompletionStage<Void> | 
CompletionStage.runAfterBothAsync(CompletionStage<?> other,
                 Runnable action,
                 Executor executor)
Returns a new CompletionStage that, when this and the other
 given stage complete normally, executes the given action using
 the supplied executor
 See the  
CompletionStage documentation for rules
 covering exceptional completion. | 
CompletableFuture<Void> | 
CompletableFuture.runAfterEither(CompletionStage<?> other,
              Runnable action)  | 
CompletionStage<Void> | 
CompletionStage.runAfterEither(CompletionStage<?> other,
              Runnable action)
Returns a new CompletionStage that, when either this or the
 other given stage complete normally, executes the given action. 
 | 
CompletableFuture<Void> | 
CompletableFuture.runAfterEitherAsync(CompletionStage<?> other,
                   Runnable action)  | 
CompletionStage<Void> | 
CompletionStage.runAfterEitherAsync(CompletionStage<?> other,
                   Runnable action)
Returns a new CompletionStage that, when either this or the
 other given stage complete normally, executes the given action
 using this stage's default asynchronous execution facility. 
 | 
CompletableFuture<Void> | 
CompletableFuture.runAfterEitherAsync(CompletionStage<?> other,
                   Runnable action,
                   Executor executor)  | 
CompletionStage<Void> | 
CompletionStage.runAfterEitherAsync(CompletionStage<?> other,
                   Runnable action,
                   Executor executor)
Returns a new CompletionStage that, when either this or the
 other given stage complete normally, executes the given action
 using supplied executor. 
 | 
<U> CompletableFuture<Void> | 
CompletableFuture.thenAcceptBoth(CompletionStage<? extends U> other,
              BiConsumer<? super T,? super U> action)  | 
<U> CompletionStage<Void> | 
CompletionStage.thenAcceptBoth(CompletionStage<? extends U> other,
              BiConsumer<? super T,? super U> action)
Returns a new CompletionStage that, when this and the other
 given stage both complete normally, is executed with the two
 results as arguments to the supplied action. 
 | 
<U> CompletableFuture<Void> | 
CompletableFuture.thenAcceptBothAsync(CompletionStage<? extends U> other,
                   BiConsumer<? super T,? super U> action)  | 
<U> CompletionStage<Void> | 
CompletionStage.thenAcceptBothAsync(CompletionStage<? extends U> other,
                   BiConsumer<? super T,? super U> action)
Returns a new CompletionStage that, when this and the other
 given stage complete normally, is executed using this stage's
 default asynchronous execution facility, with the two results
 as arguments to the supplied action. 
 | 
<U> CompletableFuture<Void> | 
CompletableFuture.thenAcceptBothAsync(CompletionStage<? extends U> other,
                   BiConsumer<? super T,? super U> action,
                   Executor executor)  | 
<U> CompletionStage<Void> | 
CompletionStage.thenAcceptBothAsync(CompletionStage<? extends U> other,
                   BiConsumer<? super T,? super U> action,
                   Executor executor)
Returns a new CompletionStage that, when this and the other
 given stage complete normally, is executed using the supplied
 executor, with the two results as arguments to the supplied
 function. 
 | 
<U,V> CompletableFuture<V> | 
CompletableFuture.thenCombine(CompletionStage<? extends U> other,
           BiFunction<? super T,? super U,? extends V> fn)  | 
<U,V> CompletionStage<V> | 
CompletionStage.thenCombine(CompletionStage<? extends U> other,
           BiFunction<? super T,? super U,? extends V> fn)
Returns a new CompletionStage that, when this and the other
 given stage both complete normally, is executed with the two
 results as arguments to the supplied function. 
 | 
<U,V> CompletableFuture<V> | 
CompletableFuture.thenCombineAsync(CompletionStage<? extends U> other,
                BiFunction<? super T,? super U,? extends V> fn)  | 
<U,V> CompletionStage<V> | 
CompletionStage.thenCombineAsync(CompletionStage<? extends U> other,
                BiFunction<? super T,? super U,? extends V> fn)
Returns a new CompletionStage that, when this and the other
 given stage complete normally, is executed using this stage's
 default asynchronous execution facility, with the two results
 as arguments to the supplied function. 
 | 
<U,V> CompletableFuture<V> | 
CompletableFuture.thenCombineAsync(CompletionStage<? extends U> other,
                BiFunction<? super T,? super U,? extends V> fn,
                Executor executor)  | 
<U,V> CompletionStage<V> | 
CompletionStage.thenCombineAsync(CompletionStage<? extends U> other,
                BiFunction<? super T,? super U,? extends V> fn,
                Executor executor)
Returns a new CompletionStage that, when this and the other
 given stage complete normally, is executed using the supplied
 executor, with the two results as arguments to the supplied
 function. 
 | 
| Modifier and Type | Method and Description | 
|---|---|
<U> CompletableFuture<U> | 
CompletableFuture.thenCompose(Function<? super T,? extends CompletionStage<U>> fn)  | 
<U> CompletionStage<U> | 
CompletionStage.thenCompose(Function<? super T,? extends CompletionStage<U>> fn)
Returns a new CompletionStage that, when this stage completes
 normally, is executed with this stage as the argument
 to the supplied function. 
 | 
<U> CompletableFuture<U> | 
CompletableFuture.thenComposeAsync(Function<? super T,? extends CompletionStage<U>> fn)  | 
<U> CompletionStage<U> | 
CompletionStage.thenComposeAsync(Function<? super T,? extends CompletionStage<U>> fn)
Returns a new CompletionStage that, when this stage completes
 normally, is executed using this stage's default asynchronous
 execution facility, with this stage as the argument to the
 supplied function. 
 | 
<U> CompletableFuture<U> | 
CompletableFuture.thenComposeAsync(Function<? super T,? extends CompletionStage<U>> fn,
                Executor executor)  | 
<U> CompletionStage<U> | 
CompletionStage.thenComposeAsync(Function<? super T,? extends CompletionStage<U>> fn,
                Executor executor)
Returns a new CompletionStage that, when this stage completes
 normally, is executed using the supplied Executor, with this
 stage's result as the argument to the supplied function. 
 | 
 Submit a bug or feature 
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
 Copyright © 1993, 2014, Oracle and/or its affiliates.  All rights reserved.