java.util.concurrent
Class AbstractExecutorService

java.lang.Object sample code for java.lang.Object definition code for java.lang.Object 
  extended by java.util.concurrent.AbstractExecutorService
All Implemented Interfaces:
Executor sample code for java.util.concurrent.Executor definition code for java.util.concurrent.Executor , ExecutorService sample code for java.util.concurrent.ExecutorService definition code for java.util.concurrent.ExecutorService
Direct Known Subclasses:
ThreadPoolExecutor sample code for java.util.concurrent.ThreadPoolExecutor definition code for java.util.concurrent.ThreadPoolExecutor

public abstract class AbstractExecutorService
extends Object sample code for java.lang.Object definition code for java.lang.Object
implements ExecutorService sample code for java.util.concurrent.ExecutorService definition code for java.util.concurrent.ExecutorService

Provides default implementation of ExecutorService sample code for java.util.concurrent.ExecutorService definition code for java.util.concurrent.ExecutorService execution methods. This class implements the submit, invokeAny and invokeAll methods using the default FutureTask sample code for java.util.concurrent.FutureTask definition code for java.util.concurrent.FutureTask class provided in this package. For example, the implementation of submit(Runnable) creates an associated FutureTask that is executed and returned. Subclasses overriding these methods to use different Future sample code for java.util.concurrent.Future definition code for java.util.concurrent.Future implementations should do so consistently for each of these methods.

Since:
1.5

Constructor Summary
AbstractExecutorService sample code for java.util.concurrent.AbstractExecutorService.AbstractExecutorService() definition code for java.util.concurrent.AbstractExecutorService.AbstractExecutorService() ()
           
 
Method Summary
<T> List sample code for java.util.List definition code for java.util.List <Future sample code for java.util.concurrent.Future definition code for java.util.concurrent.Future <T>>
invokeAll sample code for java.util.concurrent.AbstractExecutorService.invokeAll(java.util.Collection) definition code for java.util.concurrent.AbstractExecutorService.invokeAll(java.util.Collection) (Collection sample code for java.util.Collection definition code for java.util.Collection <Callable sample code for java.util.concurrent.Callable definition code for java.util.concurrent.Callable <T>> tasks)
          Executes the given tasks, returning a list of Futures holding their status and results when all complete.
<T> List sample code for java.util.List definition code for java.util.List <Future sample code for java.util.concurrent.Future definition code for java.util.concurrent.Future <T>>
invokeAll sample code for java.util.concurrent.AbstractExecutorService.invokeAll(java.util.Collection, long, java.util.concurrent.TimeUnit) definition code for java.util.concurrent.AbstractExecutorService.invokeAll(java.util.Collection, long, java.util.concurrent.TimeUnit) (Collection sample code for java.util.Collection definition code for java.util.Collection <Callable sample code for java.util.concurrent.Callable definition code for java.util.concurrent.Callable <T>> tasks, long timeout, TimeUnit sample code for java.util.concurrent.TimeUnit definition code for java.util.concurrent.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
invokeAny sample code for java.util.concurrent.AbstractExecutorService.invokeAny(java.util.Collection) definition code for java.util.concurrent.AbstractExecutorService.invokeAny(java.util.Collection) (Collection sample code for java.util.Collection definition code for java.util.Collection <Callable sample code for java.util.concurrent.Callable definition code for java.util.concurrent.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
invokeAny sample code for java.util.concurrent.AbstractExecutorService.invokeAny(java.util.Collection, long, java.util.concurrent.TimeUnit) definition code for java.util.concurrent.AbstractExecutorService.invokeAny(java.util.Collection, long, java.util.concurrent.TimeUnit) (Collection sample code for java.util.Collection definition code for java.util.Collection <Callable sample code for java.util.concurrent.Callable definition code for java.util.concurrent.Callable <T>> tasks, long timeout, TimeUnit sample code for java.util.concurrent.TimeUnit definition code for java.util.concurrent.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> Future sample code for java.util.concurrent.Future definition code for java.util.concurrent.Future <T>
submit sample code for java.util.concurrent.AbstractExecutorService.submit(java.util.concurrent.Callable) definition code for java.util.concurrent.AbstractExecutorService.submit(java.util.concurrent.Callable) (Callable sample code for java.util.concurrent.Callable definition code for java.util.concurrent.Callable <T> task)
          Submits a value-returning task for execution and returns a Future representing the pending results of the task.
 Future sample code for java.util.concurrent.Future definition code for java.util.concurrent.Future <?> submit sample code for java.util.concurrent.AbstractExecutorService.submit(java.lang.Runnable) definition code for java.util.concurrent.AbstractExecutorService.submit(java.lang.Runnable) (Runnable sample code for java.lang.Runnable definition code for java.lang.Runnable  task)
          Submits a Runnable task for execution and returns a Future representing that task.
<T> Future sample code for java.util.concurrent.Future definition code for java.util.concurrent.Future <T>
submit sample code for java.util.concurrent.AbstractExecutorService.submit(java.lang.Runnable, T) definition code for java.util.concurrent.AbstractExecutorService.submit(java.lang.Runnable, T) (Runnable sample code for java.lang.Runnable definition code for java.lang.Runnable  task, T result)
          Submits a Runnable task for execution and returns a Future representing that task that will upon completion return the given result
 
Methods inherited from class java.lang.Object sample code for java.lang.Object definition code for java.lang.Object
clone sample code for java.lang.Object.clone() definition code for java.lang.Object.clone() , equals sample code for java.lang.Object.equals(java.lang.Object) definition code for java.lang.Object.equals(java.lang.Object) , finalize sample code for java.lang.Object.finalize() definition code for java.lang.Object.finalize() , getClass sample code for java.lang.Object.getClass() definition code for java.lang.Object.getClass() , hashCode sample code for java.lang.Object.hashCode() definition code for java.lang.Object.hashCode() , notify sample code for java.lang.Object.notify() definition code for java.lang.Object.notify() , notifyAll sample code for java.lang.Object.notifyAll() definition code for java.lang.Object.notifyAll() , toString sample code for java.lang.Object.toString() definition code for java.lang.Object.toString() , wait sample code for java.lang.Object.wait() definition code for java.lang.Object.wait() , wait sample code for java.lang.Object.wait(long) definition code for java.lang.Object.wait(long) , wait sample code for java.lang.Object.wait(long, int) definition code for java.lang.Object.wait(long, int)
 
Methods inherited from interface java.util.concurrent.ExecutorService sample code for java.util.concurrent.ExecutorService definition code for java.util.concurrent.ExecutorService
awaitTermination sample code for java.util.concurrent.ExecutorService.awaitTermination(long, java.util.concurrent.TimeUnit) definition code for java.util.concurrent.ExecutorService.awaitTermination(long, java.util.concurrent.TimeUnit) , isShutdown sample code for java.util.concurrent.ExecutorService.isShutdown() definition code for java.util.concurrent.ExecutorService.isShutdown() , isTerminated sample code for java.util.concurrent.ExecutorService.isTerminated() definition code for java.util.concurrent.ExecutorService.isTerminated() , shutdown sample code for java.util.concurrent.ExecutorService.shutdown() definition code for java.util.concurrent.ExecutorService.shutdown() , shutdownNow sample code for java.util.concurrent.ExecutorService.shutdownNow() definition code for java.util.concurrent.ExecutorService.shutdownNow()
 
Methods inherited from interface java.util.concurrent.Executor sample code for java.util.concurrent.Executor definition code for java.util.concurrent.Executor
execute sample code for java.util.concurrent.Executor.execute(java.lang.Runnable) definition code for java.util.concurrent.Executor.execute(java.lang.Runnable)
 

Constructor Detail

AbstractExecutorService sample code for java.util.concurrent.AbstractExecutorService() definition code for java.util.concurrent.AbstractExecutorService()

public AbstractExecutorService()
Method Detail

submit sample code for java.util.concurrent.AbstractExecutorService.submit(java.lang.Runnable) definition code for java.util.concurrent.AbstractExecutorService.submit(java.lang.Runnable)

public Future sample code for java.util.concurrent.Future definition code for java.util.concurrent.Future <?> submit(Runnable sample code for java.lang.Runnable definition code for java.lang.Runnable  task)
Description copied from interface: ExecutorService sample code for java.util.concurrent.ExecutorService.submit(java.lang.Runnable) definition code for java.util.concurrent.ExecutorService.submit(java.lang.Runnable)
Submits a Runnable task for execution and returns a Future representing that task.

Specified by:
submit sample code for java.util.concurrent.ExecutorService.submit(java.lang.Runnable) definition code for java.util.concurrent.ExecutorService.submit(java.lang.Runnable) in interface ExecutorService sample code for java.util.concurrent.ExecutorService definition code for java.util.concurrent.ExecutorService
Parameters:
task - the task to submit
Returns:
a Future representing pending completion of the task, and whose get() method will return null upon completion.

submit sample code for java.util.concurrent.AbstractExecutorService.<T>submit(java.lang.Runnable, T) definition code for java.util.concurrent.AbstractExecutorService.<T>submit(java.lang.Runnable, T)

public <T> Future sample code for java.util.concurrent.Future definition code for java.util.concurrent.Future <T> submit(Runnable sample code for java.lang.Runnable definition code for java.lang.Runnable  task,
                            T result)
Description copied from interface: ExecutorService sample code for java.util.concurrent.ExecutorService.submit(java.lang.Runnable, T) definition code for java.util.concurrent.ExecutorService.submit(java.lang.Runnable, T)
Submits a Runnable task for execution and returns a Future representing that task that will upon completion return the given result

Specified by:
submit sample code for java.util.concurrent.ExecutorService.submit(java.lang.Runnable, T) definition code for java.util.concurrent.ExecutorService.submit(java.lang.Runnable, T) in interface ExecutorService sample code for java.util.concurrent.ExecutorService definition code for java.util.concurrent.ExecutorService
Parameters:
task - the task to submit
result - the result to return
Returns:
a Future representing pending completion of the task, and whose get() method will return the given result upon completion.

submit sample code for java.util.concurrent.AbstractExecutorService.<T>submit(java.util.concurrent.Callable<T>) definition code for java.util.concurrent.AbstractExecutorService.<T>submit(java.util.concurrent.Callable<T>)

public <T> Future sample code for java.util.concurrent.Future definition code for java.util.concurrent.Future <T> submit(Callable sample code for java.util.concurrent.Callable definition code for java.util.concurrent.Callable <T> task)
Description copied from interface: ExecutorService sample code for java.util.concurrent.ExecutorService.submit(java.util.concurrent.Callable) definition code for java.util.concurrent.ExecutorService.submit(java.util.concurrent.Callable)
Submits a value-returning task for execution and returns a Future representing the pending results of the task.

If you would like to immediately block waiting for a task, you can use constructions of the form result = exec.submit(aCallable).get();

Note: The Executors sample code for java.util.concurrent.Executors definition code for java.util.concurrent.Executors class includes a set of methods that can convert some other common closure-like objects, for example, PrivilegedAction sample code for java.security.PrivilegedAction definition code for java.security.PrivilegedAction to Callable sample code for java.util.concurrent.Callable definition code for java.util.concurrent.Callable form so they can be submitted.

Specified by:
submit sample code for java.util.concurrent.ExecutorService.submit(java.util.concurrent.Callable) definition code for java.util.concurrent.ExecutorService.submit(java.util.concurrent.Callable) in interface ExecutorService sample code for java.util.concurrent.ExecutorService definition code for java.util.concurrent.ExecutorService
Parameters:
task - the task to submit
Returns:
a Future representing pending completion of the task

invokeAny sample code for java.util.concurrent.AbstractExecutorService.<T>invokeAny(java.util.Collection<java.util.concurrent.Callable<T>>) definition code for java.util.concurrent.AbstractExecutorService.<T>invokeAny(java.util.Collection<java.util.concurrent.Callable<T>>)

public <T> T invokeAny(Collection sample code for java.util.Collection definition code for java.util.Collection <Callable sample code for java.util.concurrent.Callable definition code for java.util.concurrent.Callable <T>> tasks)
            throws InterruptedException sample code for java.lang.InterruptedException definition code for java.lang.InterruptedException ,
                   ExecutionException sample code for java.util.concurrent.ExecutionException definition code for java.util.concurrent.ExecutionException 
Description copied from interface: ExecutorService sample code for java.util.concurrent.ExecutorService.invokeAny(java.util.Collection) definition code for java.util.concurrent.ExecutorService.invokeAny(java.util.Collection)
Executes the given tasks, returning the result of one that has completed successfully (i.e., without throwing an exception), if any do. Upon normal or exceptional return, tasks that have not completed are cancelled. The results of this method are undefined if the given collection is modified while this operation is in progress.

Specified by:
invokeAny sample code for java.util.concurrent.ExecutorService.invokeAny(java.util.Collection) definition code for java.util.concurrent.ExecutorService.invokeAny(java.util.Collection) in interface ExecutorService sample code for java.util.concurrent.ExecutorService definition code for java.util.concurrent.ExecutorService
Parameters:
tasks - the collection of tasks
Returns:
The result returned by one of the tasks.
Throws:
InterruptedException sample code for java.lang.InterruptedException definition code for java.lang.InterruptedException - if interrupted while waiting
ExecutionException sample code for java.util.concurrent.ExecutionException definition code for java.util.concurrent.ExecutionException - if no task successfully completes

invokeAny sample code for java.util.concurrent.AbstractExecutorService.<T>invokeAny(java.util.Collection<java.util.concurrent.Callable<T>>, long, java.util.concurrent.TimeUnit) definition code for java.util.concurrent.AbstractExecutorService.<T>invokeAny(java.util.Collection<java.util.concurrent.Callable<T>>, long, java.util.concurrent.TimeUnit)

public <T> T invokeAny(Collection sample code for java.util.Collection definition code for java.util.Collection <Callable sample code for java.util.concurrent.Callable definition code for java.util.concurrent.Callable <T>> tasks,
                       long timeout,
                       TimeUnit sample code for java.util.concurrent.TimeUnit definition code for java.util.concurrent.TimeUnit  unit)
            throws InterruptedException sample code for java.lang.InterruptedException definition code for java.lang.InterruptedException ,
                   ExecutionException sample code for java.util.concurrent.ExecutionException definition code for java.util.concurrent.ExecutionException ,
                   TimeoutException sample code for java.util.concurrent.TimeoutException definition code for java.util.concurrent.TimeoutException 
Description copied from interface: ExecutorService sample code for java.util.concurrent.ExecutorService.invokeAny(java.util.Collection, long, java.util.concurrent.TimeUnit) definition code for java.util.concurrent.ExecutorService.invokeAny(java.util.Collection, long, java.util.concurrent.TimeUnit)
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. Upon normal or exceptional return, tasks that have not completed are cancelled. The results of this method are undefined if the given collection is modified while this operation is in progress.

Specified by:
invokeAny sample code for java.util.concurrent.ExecutorService.invokeAny(java.util.Collection, long, java.util.concurrent.TimeUnit) definition code for java.util.concurrent.ExecutorService.invokeAny(java.util.Collection, long, java.util.concurrent.TimeUnit) in interface ExecutorService sample code for java.util.concurrent.ExecutorService definition code for java.util.concurrent.ExecutorService
Parameters:
tasks - the collection of tasks
timeout - the maximum time to wait
unit - the time unit of the timeout argument
Returns:
The result returned by one of the tasks.
Throws:
InterruptedException sample code for java.lang.InterruptedException definition code for java.lang.InterruptedException - if interrupted while waiting
ExecutionException sample code for java.util.concurrent.ExecutionException definition code for java.util.concurrent.ExecutionException - if no task successfully completes
TimeoutException sample code for java.util.concurrent.TimeoutException definition code for java.util.concurrent.TimeoutException - if the given timeout elapses before any task successfully completes

invokeAll sample code for java.util.concurrent.AbstractExecutorService.<T>invokeAll(java.util.Collection<java.util.concurrent.Callable<T>>) definition code for java.util.concurrent.AbstractExecutorService.<T>invokeAll(java.util.Collection<java.util.concurrent.Callable<T>>)

public <T> List sample code for java.util.List definition code for java.util.List <Future sample code for java.util.concurrent.Future definition code for java.util.concurrent.Future <T>> invokeAll(Collection sample code for java.util.Collection definition code for java.util.Collection <Callable sample code for java.util.concurrent.Callable definition code for java.util.concurrent.Callable <T>> tasks)
                          throws InterruptedException sample code for java.lang.InterruptedException definition code for java.lang.InterruptedException 
Description copied from interface: ExecutorService sample code for java.util.concurrent.ExecutorService.invokeAll(java.util.Collection) definition code for java.util.concurrent.ExecutorService.invokeAll(java.util.Collection)
Executes the given tasks, returning a list of Futures holding their status and results when all complete. Future.isDone() sample code for java.util.concurrent.Future.isDone() definition code for java.util.concurrent.Future.isDone() is true for each element of the returned list. Note that a completed task could have terminated either normally or by throwing an exception. The results of this method are undefined if the given collection is modified while this operation is in progress.

Specified by:
invokeAll sample code for java.util.concurrent.ExecutorService.invokeAll(java.util.Collection) definition code for java.util.concurrent.ExecutorService.invokeAll(java.util.Collection) in interface ExecutorService sample code for java.util.concurrent.ExecutorService definition code for java.util.concurrent.ExecutorService
Parameters:
tasks - the collection of tasks
Returns:
A list of Futures representing the tasks, in the same sequential order as produced by the iterator for the given task list, each of which has completed.
Throws:
InterruptedException sample code for java.lang.InterruptedException definition code for java.lang.InterruptedException - if interrupted while waiting, in which case unfinished tasks are cancelled.

invokeAll sample code for java.util.concurrent.AbstractExecutorService.<T>invokeAll(java.util.Collection<java.util.concurrent.Callable<T>>, long, java.util.concurrent.TimeUnit) definition code for java.util.concurrent.AbstractExecutorService.<T>invokeAll(java.util.Collection<java.util.concurrent.Callable<T>>, long, java.util.concurrent.TimeUnit)

public <T> List sample code for java.util.List definition code for java.util.List <Future sample code for java.util.concurrent.Future definition code for java.util.concurrent.Future <T>> invokeAll(Collection sample code for java.util.Collection definition code for java.util.Collection <Callable sample code for java.util.concurrent.Callable definition code for java.util.concurrent.Callable <T>> tasks,
                                     long timeout,
                                     TimeUnit sample code for java.util.concurrent.TimeUnit definition code for java.util.concurrent.TimeUnit  unit)
                          throws InterruptedException sample code for java.lang.InterruptedException definition code for java.lang.InterruptedException 
Description copied from interface: ExecutorService sample code for java.util.concurrent.ExecutorService.invokeAll(java.util.Collection, long, java.util.concurrent.TimeUnit) definition code for java.util.concurrent.ExecutorService.invokeAll(java.util.Collection, long, java.util.concurrent.TimeUnit)
Executes the given tasks, returning a list of Futures holding their status and results when all complete or the timeout expires, whichever happens first. Future.isDone() sample code for java.util.concurrent.Future.isDone() definition code for java.util.concurrent.Future.isDone() is true for each element of the returned list. Upon return, tasks that have not completed are cancelled. Note that a completed task could have terminated either normally or by throwing an exception. The results of this method are undefined if the given collection is modified while this operation is in progress.

Specified by:
invokeAll sample code for java.util.concurrent.ExecutorService.invokeAll(java.util.Collection, long, java.util.concurrent.TimeUnit) definition code for java.util.concurrent.ExecutorService.invokeAll(java.util.Collection, long, java.util.concurrent.TimeUnit) in interface ExecutorService sample code for java.util.concurrent.ExecutorService definition code for java.util.concurrent.ExecutorService
Parameters:
tasks - the collection of tasks
timeout - the maximum time to wait
unit - the time unit of the timeout argument
Returns:
A list of Futures representing the tasks, in the same sequential order as produced by the iterator for the given task list. If the operation did not time out, each task will have completed. If it did time out, some of these tasks will not have completed.
Throws:
InterruptedException sample code for java.lang.InterruptedException definition code for java.lang.InterruptedException - if interrupted while waiting, in which case unfinished tasks are cancelled.