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

## 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>` | ForkJoinPool.`newTaskFor(Callable<T> callable)`
    `protected <T> RunnableFuture<T>` | AbstractExecutorService.`newTaskFor(Callable<T> callable)` Returns a `RunnableFuture` for the given callable task.
    `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>` | ExecutorService.`submit(Callable<T> task)` Submits a value-returning task for execution and returns a Future representing the pending results of the task.
    `<T> ForkJoinTask<T>` | ForkJoinPool.`submit(Callable<T> task)`
    `<T> Future<T>` | AbstractExecutorService.`submit(Callable<T> 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>>` | 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>>` | ForkJoinPool.`invokeAll(Collection<? extends Callable<T>> tasks)`
    `<T> List<Future<T>>` | AbstractExecutorService.`invokeAll(Collection<? extends Callable<T>> tasks)`
    `<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> List<Future<T>>` | AbstractExecutorService.`invokeAll(Collection<? extends Callable<T>> tasks, long timeout, TimeUnit unit)`
    `<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)`
    `<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.
    `<T> T` | AbstractExecutorService.`invokeAny(Collection<? extends Callable<T>> tasks, long timeout, TimeUnit unit)`

    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.