## Uses of Class
java.util.concurrent.CompletableFuture

- Packages that use CompletableFuture
  Package | Description
  --- | ---
  java.lang | Provides classes that are fundamental to the design of the Java programming language.
  java.net.http | HTTP Client and WebSocket APIs
  java.util.concurrent | Utility classes commonly useful in concurrent programming.

- - ### Uses of CompletableFuture in java.lang

    Methods in java.lang that return CompletableFuture
    Modifier and Type | Method | Description
    --- | --- | ---
    `CompletableFuture<Process>` | Process.`onExit()` | Returns a `CompletableFuture<Process>` for the termination of the Process.
    `CompletableFuture<ProcessHandle>` | ProcessHandle.`onExit()` | Returns a `CompletableFuture<ProcessHandle>` for the termination of the process.

  - ### Uses of CompletableFuture in java.net.http

    Methods in java.net.http that return CompletableFuture
    Modifier and Type | Method | Description
    --- | --- | ---
    `CompletableFuture<WebSocket>` | WebSocket.Builder.`buildAsync​(URI uri, WebSocket.Listener listener)` | Builds a `WebSocket` connected to the given `URI` and associated with the given `Listener`.
    `abstract <T> CompletableFuture<HttpResponse<T>>` | HttpClient.`sendAsync​(HttpRequest request, HttpResponse.BodyHandler<T> responseBodyHandler)` | Sends the given request asynchronously using this client with the given response body handler.
    `abstract <T> CompletableFuture<HttpResponse<T>>` | HttpClient.`sendAsync​(HttpRequest request, HttpResponse.BodyHandler<T> responseBodyHandler, HttpResponse.PushPromiseHandler<T> pushPromiseHandler)` | Sends the given request asynchronously using this client with the given response body handler and push promise handler.
    `CompletableFuture<WebSocket>` | WebSocket.`sendBinary​(ByteBuffer data, boolean last)` | Sends binary data with bytes from the given buffer.
    `CompletableFuture<WebSocket>` | WebSocket.`sendClose​(int statusCode, String reason)` | Initiates an orderly closure of this WebSocket's output by sending a Close message with the given status code and the reason.
    `CompletableFuture<WebSocket>` | WebSocket.`sendPing​(ByteBuffer message)` | Sends a Ping message with bytes from the given buffer.
    `CompletableFuture<WebSocket>` | WebSocket.`sendPong​(ByteBuffer message)` | Sends a Pong message with bytes from the given buffer.
    `CompletableFuture<WebSocket>` | WebSocket.`sendText​(CharSequence data, boolean last)` | Sends textual data with characters from the given character sequence.

    Method parameters in java.net.http with type arguments of type CompletableFuture
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | HttpResponse.PushPromiseHandler.`applyPushPromise​(HttpRequest initiatingRequest, HttpRequest pushPromiseRequest, Function<HttpResponse.BodyHandler<T>,​CompletableFuture<HttpResponse<T>>> acceptor)` | Notification of an incoming push promise.
    `static <T> HttpResponse.PushPromiseHandler<T>` | HttpResponse.PushPromiseHandler.`of​(Function<HttpRequest,​HttpResponse.BodyHandler<T>> pushPromiseHandler, ConcurrentMap<HttpRequest,​CompletableFuture<HttpResponse<T>>> pushPromisesMap)` | Returns a push promise handler that accumulates push promises, and their responses, into the given map.

  - ### Uses of CompletableFuture in java.util.concurrent

    Methods in java.util.concurrent that return CompletableFuture
    Modifier and Type | Method | Description
    --- | --- | ---
    `static CompletableFuture<Void>` | CompletableFuture.`allOf​(CompletableFuture<?>... cfs)` | Returns a new CompletableFuture that is completed when all of the given CompletableFutures complete.
    `static CompletableFuture<Object>` | CompletableFuture.`anyOf​(CompletableFuture<?>... cfs)` | Returns a new CompletableFuture that is completed when any of the given CompletableFutures complete, with the same result.
    `CompletableFuture<T>` | CompletableFuture.`completeAsync​(Supplier<? extends T> supplier)` | Completes this CompletableFuture with the result of the given Supplier function invoked from an asynchronous task using the default executor.
    `CompletableFuture<T>` | CompletableFuture.`completeAsync​(Supplier<? extends T> supplier, Executor executor)` | Completes this CompletableFuture with the result of the given Supplier function invoked from an asynchronous task using the given executor.
    `static <U> CompletableFuture<U>` | CompletableFuture.`completedFuture​(U value)` | Returns a new CompletableFuture that is already completed with the given value.
    `CompletableFuture<T>` | CompletableFuture.`completeOnTimeout​(T value, long timeout, TimeUnit unit)` | Completes this CompletableFuture with the given value if not otherwise completed before the given timeout.
    `CompletableFuture<Void>` | SubmissionPublisher.`consume​(Consumer<? super T> consumer)` | Processes all published items using the given Consumer function.
    `CompletableFuture<T>` | CompletableFuture.`copy()` | Returns a new CompletableFuture that is completed normally with the same value as this CompletableFuture when it completes normally.
    `CompletableFuture<T>` | CompletableFuture.`exceptionally​(Function<Throwable,​? extends T> fn)` | Returns a new CompletableFuture that is completed when this CompletableFuture completes, with the result of the given function of the exception triggering this CompletableFuture's completion when it completes exceptionally; otherwise, if this CompletableFuture completes normally, then the returned CompletableFuture also completes normally with the same value.
    `static <U> CompletableFuture<U>` | CompletableFuture.`failedFuture​(Throwable ex)` | Returns a new CompletableFuture that is already completed exceptionally with the given exception.
    `<U> CompletableFuture<U>` | CompletableFuture.`newIncompleteFuture()` | Returns a new incomplete CompletableFuture of the type to be returned by a CompletionStage method.
    `CompletableFuture<T>` | CompletableFuture.`orTimeout​(long timeout, TimeUnit unit)` | Exceptionally completes this CompletableFuture with a `TimeoutException` if not otherwise completed before the given timeout.
    `static CompletableFuture<Void>` | CompletableFuture.`runAsync​(Runnable runnable)` | Returns a new CompletableFuture that is asynchronously completed by a task running in the `ForkJoinPool.commonPool()` after it runs the given action.
    `static CompletableFuture<Void>` | CompletableFuture.`runAsync​(Runnable runnable, Executor executor)` | Returns a new CompletableFuture that is asynchronously completed by a task running in the given executor after it runs the given action.
    `static <U> CompletableFuture<U>` | CompletableFuture.`supplyAsync​(Supplier<U> supplier)` | Returns a new CompletableFuture that is asynchronously completed by a task running in the `ForkJoinPool.commonPool()` with the value obtained by calling the given Supplier.
    `static <U> CompletableFuture<U>` | CompletableFuture.`supplyAsync​(Supplier<U> supplier, Executor executor)` | Returns a new CompletableFuture that is asynchronously completed by a task running in the given executor with the value obtained by calling the given Supplier.
    `CompletableFuture<T>` | CompletableFuture.`toCompletableFuture()` | Returns this CompletableFuture.
    `CompletableFuture<T>` | CompletionStage.`toCompletableFuture()` | Returns a `CompletableFuture` maintaining the same completion properties as this stage.

    Methods in java.util.concurrent with parameters of type CompletableFuture
    Modifier and Type | Method | Description
    --- | --- | ---
    `static CompletableFuture<Void>` | CompletableFuture.`allOf​(CompletableFuture<?>... cfs)` | Returns a new CompletableFuture that is completed when all of the given CompletableFutures complete.
    `static CompletableFuture<Object>` | CompletableFuture.`anyOf​(CompletableFuture<?>... cfs)` | Returns a new CompletableFuture that is completed when any of the given CompletableFutures complete, with the same result.