# Uses of Interface
java.util.concurrent.Callable

Packages that use Callable
Package
Description
com.sun.source.util
Provides utilities for operations on abstract syntax trees (AST).
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 com.sun.source.util

Classes in com.sun.source.util that implement Callable
Modifier and Type
Class
Description
`class`
`JavacTask`
Provides access to functionality specific to the JDK Java Compiler, javac.

## Uses of Callable in java.util.concurrent

Methods in java.util.concurrent that return Callable
Modifier and Type
Method
Description
`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 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 <T> Callable<T>`
Executors.`privilegedCallable(Callable<T> callable)`
Deprecated, for removal: This API element is subject to removal in a future version.
This method is only useful in conjunction with the Security Manager, which is deprecated and subject to removal in a future release.
`static <T> Callable<T>`
Executors.`privilegedCallableUsingCurrentClassLoader(Callable<T> callable)`
Deprecated, for removal: This API element is subject to removal in a future version.
This method is only useful in conjunction with the Security Manager, which is deprecated and subject to removal in a future release.
Methods in java.util.concurrent with parameters of type Callable
Modifier and Type
Method
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.
`static <T> Callable<T>`
Executors.`privilegedCallable(Callable<T> callable)`
Deprecated, for removal: This API element is subject to removal in a future version.
This method is only useful in conjunction with the Security Manager, which is deprecated and subject to removal in a future release.
`static <T> Callable<T>`
Executors.`privilegedCallableUsingCurrentClassLoader(Callable<T> callable)`
Deprecated, for removal: This API element is subject to removal in a future version.
This method is only useful in conjunction with the Security Manager, which is deprecated and subject to removal in a future release.
`<V> ScheduledFuture<V>`
ScheduledExecutorService.`schedule(Callable<V> callable, long delay, TimeUnit unit)`
Submits a value-returning one-shot task that becomes enabled after the given delay.
`<V> ScheduledFuture<V>`
ScheduledThreadPoolExecutor.`schedule(Callable<V> callable, long delay, TimeUnit unit)`
`<T> Future<T>`
AbstractExecutorService.`submit(Callable<T> 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.
`Future<V>`
ExecutorCompletionService.`submit(Callable<V> 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>`
ScheduledThreadPoolExecutor.`submit(Callable<T> task)`
Method parameters in java.util.concurrent with type arguments of type Callable
Modifier and Type
Method
Description
`<T> List<Future<T>>`
AbstractExecutorService.`invokeAll(Collection<? extends Callable<T>> tasks)`
`<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)`
Executes the given tasks, returning a list of Futures holding their status and results when all complete.
`<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>>`
ForkJoinPool.`invokeAll(Collection<? extends Callable<T>> tasks)`
`<T> T`
AbstractExecutorService.`invokeAny(Collection<? extends Callable<T>> tasks)`
`<T> T`
AbstractExecutorService.`invokeAny(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`
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
Modifier
Constructor
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
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.