Uses of Interface java.util.concurrent.Callable (Java Platform SE 8 )
Date: 2026-06-25

## Uses of Interface
java.util.concurrent.Callable

- Packages that use Callable
  Package | Description
  --- | ---
  java.util.concurrent | Utility classes commonly useful in concurrent programming.
  javax.tools | Provides interfaces for tools which can be invoked from a program, for example, compilers.

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

    Methods in java.util.concurrent that return Callable
    Modifier and Type | Method and Description
    --- | ---
    `static Callable<Object>` | Executors.`callable(PrivilegedAction<?> action)` Returns a `Callable` object that, when called, runs the given privileged action and returns its result.
    `static Callable<Object>` | Executors.`callable(PrivilegedExceptionAction<?> action)` Returns a `Callable` object that, when called, runs the given privileged exception action and returns its result.
    `static Callable<Object>` | Executors.`callable(Runnable task)` Returns a `Callable` object that, when called, runs the given task and returns `null`.
    `static <T> Callable<T>` | Executors.`callable(Runnable task, T result)` Returns a `Callable` object that, when called, runs the given task and returns the given result.
    `static <T> Callable<T>` | Executors.`privilegedCallable(Callable<T> callable)` Returns a `Callable` object that will, when called, execute the given `callable` under the current access control context.
    `static <T> Callable<T>` | Executors.`privilegedCallableUsingCurrentClassLoader(Callable<T> callable)` Returns a `Callable` object that will, when called, execute the given `callable` under the current access control context, with the current context class loader as the context class loader.

    Methods in java.util.concurrent with parameters of type Callable
    Modifier and Type | Method and Description
    --- | ---
    `static <T> ForkJoinTask<T>` | ForkJoinTask.`adapt(Callable<? extends T> callable)` Returns a new `ForkJoinTask` that performs the `call` method of the given `Callable` as its action, and returns its result upon `ForkJoinTask.join()`, translating any checked exceptions encountered into `RuntimeException`.
    `protected <V> RunnableScheduledFuture<V>` | ScheduledThreadPoolExecutor.`decorateTask(Callable<V> callable, RunnableScheduledFuture<V> task)` Modifies or replaces the task used to execute a callable.
    `protected <T> RunnableFuture<T>` | AbstractExecutorService.`newTaskFor(Callable<T> callable)` Returns a `RunnableFuture` for the given callable task.
    `protected <T> RunnableFuture<T>` | ForkJoinPool.`newTaskFor(Callable<T> callable)`
    `static <T> Callable<T>` | Executors.`privilegedCallable(Callable<T> callable)` Returns a `Callable` object that will, when called, execute the given `callable` under the current access control context.
    `static <T> Callable<T>` | Executors.`privilegedCallableUsingCurrentClassLoader(Callable<T> callable)` Returns a `Callable` object that will, when called, execute the given `callable` under the current access control context, with the current context class loader as the context class loader.
    `<V> ScheduledFuture<V>` | ScheduledThreadPoolExecutor.`schedule(Callable<V> callable, long delay, TimeUnit unit)`
    `<V> ScheduledFuture<V>` | ScheduledExecutorService.`schedule(Callable<V> callable, long delay, TimeUnit unit)` Creates and executes a ScheduledFuture that becomes enabled after the given delay.
    `<T> Future<T>` | ScheduledThreadPoolExecutor.`submit(Callable<T> task)`
    `<T> Future<T>` | AbstractExecutorService.`submit(Callable<T> task)`
    `<T> ForkJoinTask<T>` | ForkJoinPool.`submit(Callable<T> task)`
    `<T> Future<T>` | ExecutorService.`submit(Callable<T> task)` Submits a value-returning task for execution and returns a Future representing the pending results of the task.
    `Future<V>` | ExecutorCompletionService.`submit(Callable<V> task)`
    `Future<V>` | CompletionService.`submit(Callable<V> task)` Submits a value-returning task for execution and returns a Future representing the pending results of the task.

    Method parameters in java.util.concurrent with type arguments of type Callable
    Modifier and Type | Method and Description
    --- | ---
    `<T> List<Future<T>>` | AbstractExecutorService.`invokeAll(Collection<? extends Callable<T>> tasks)`
    `<T> List<Future<T>>` | ForkJoinPool.`invokeAll(Collection<? extends Callable<T>> tasks)`
    `<T> List<Future<T>>` | ExecutorService.`invokeAll(Collection<? extends Callable<T>> tasks)` Executes the given tasks, returning a list of Futures holding their status and results when all complete.
    `<T> List<Future<T>>` | AbstractExecutorService.`invokeAll(Collection<? extends Callable<T>> tasks, long timeout, TimeUnit unit)`
    `<T> List<Future<T>>` | ExecutorService.`invokeAll(Collection<? extends Callable<T>> tasks, long timeout, TimeUnit unit)` Executes the given tasks, returning a list of Futures holding their status and results when all complete or the timeout expires, whichever happens first.
    `<T> T` | AbstractExecutorService.`invokeAny(Collection<? extends Callable<T>> tasks)`
    `<T> T` | ExecutorService.`invokeAny(Collection<? extends Callable<T>> tasks)` Executes the given tasks, returning the result of one that has completed successfully (i.e., without throwing an exception), if any do.
    `<T> T` | AbstractExecutorService.`invokeAny(Collection<? extends Callable<T>> tasks, long timeout, TimeUnit unit)`
    `<T> T` | ExecutorService.`invokeAny(Collection<? extends Callable<T>> tasks, long timeout, TimeUnit unit)` Executes the given tasks, returning the result of one that has completed successfully (i.e., without throwing an exception), if any do before the given timeout elapses.

    Constructors in java.util.concurrent with parameters of type Callable
    Constructor and Description
    `FutureTask(Callable<V> callable)` Creates a `FutureTask` that will, upon running, execute the given `Callable`.

  - ### Uses of Callable in javax.tools

    Subinterfaces of Callable in javax.tools
    Modifier and Type | Interface and Description
    --- | ---
    `static interface` | `DocumentationTool.DocumentationTask` Interface representing a future for a documentation task.
    `static interface` | `JavaCompiler.CompilationTask` Interface representing a future for a compilation task.

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, 2026, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.