RunnableFuture (Java SE 26 & JDK 26)
Description: declaration: module: java.base, package: java.util.concurrent, interface: RunnableFuture
Keywords: java.util.concurrent.RunnableFuture interface

# Interface RunnableFuture<V>

Type Parameters:
  `V` - The result type returned by this Future's `get` method

All Superinterfaces:
  `Future<V>, Runnable`

All Known Subinterfaces:
  `RunnableScheduledFuture<V>`

All Known Implementing Classes:
  `FutureTask, SwingWorker`

public interface RunnableFuture<V> extends Runnable, Future<V>
A `Future` that is `Runnable`. Successful execution of the `run` method causes completion of the `Future` and allows access to its results.

Since:
  1.6
See Also:
  - `FutureTask`
  - `Executor`

- ## Nested Class Summary

  ### Nested classes/interfaces declared in interface Future

  `Future.State`
  Modifier and Type
  Interface
  Description
  `static enum`
  `Future.State`
  Represents the computation state.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `run()`
  Sets this Future to the result of its computation unless it has been cancelled (or has already been invoked, in which case effects are undefined).

  ### Methods declared in interface Future

  `cancel, exceptionNow, get, get, isCancelled, isDone, resultNow, state`
  Modifier and Type
  Method
  Description
  `boolean`
  `cancel(boolean mayInterruptIfRunning)`
  Attempts to cancel execution of this task.
  `default Throwable`
  `exceptionNow()`
  Returns the exception thrown by the task, without waiting.
  `V`
  `get()`
  Waits if necessary for the computation to complete, and then retrieves its result.
  `V`
  `get(long timeout, TimeUnit unit)`
  Waits if necessary for at most the given time for the computation to complete, and then retrieves its result, if available.
  `boolean`
  `isCancelled()`
  Returns `true` if this task was cancelled before it completed normally.
  `boolean`
  `isDone()`
  Returns `true` if this task completed.
  `default V`
  `resultNow()`
  Returns the computed result, without waiting.
  `default Future.State`
  `state()`
  Returns the computation state.

- ## Method Details

  - ### run

    void run()
    Sets this Future to the result of its computation unless it has been cancelled (or has already been invoked, in which case effects are undefined).
    Specified by:
      `run` in interface `Runnable`