Provides default implementations of
ExecutorService
execution methods. This class implements the
submit,
invokeAny and
invokeAll methods using a
RunnableFuture returned by
newTaskFor, which defaults
to the
FutureTask class provided in this package. For example,
the implementation of
submit(Runnable) creates an
associated
RunnableFuture that is executed and
returned. Subclasses may override the
newTaskFor methods
to return
RunnableFuture implementations other than
FutureTask.
Extension example. Here is a sketch of a class
that customizes ThreadPoolExecutor to use
a CustomTask class instead of the default FutureTask:
public class CustomThreadPoolExecutor extends ThreadPoolExecutor {
static class CustomTask<V> implements RunnableFuture<V> {...}
protected <V> RunnableFuture<V> newTaskFor(Callable<V> c) {
return new CustomTask<V>(c);
}
protected <V> RunnableFuture<V> newTaskFor(Runnable r, V v) {
return new CustomTask<V>(r, v);
}
// ... add constructors, etc.
}
| Methods |
| public List<T> |
invokeAll(Collection tasks) throws InterruptedException
|
| public List<T> |
invokeAll(Collection tasks, long timeout, TimeUnit unit) throws InterruptedException
|
| public Object<T> |
invokeAny(Collection tasks) throws InterruptedException, ExecutionException
|
| public Object<T> |
invokeAny(Collection tasks, long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException
|
| protected RunnableFuture<T> |
newTaskFor(Runnable runnable, Object value) Returns a RunnableFuture for the given runnable and default
value.
| runnable | the runnable task being wrapped |
| value | the default value for the returned future |
| return | a RunnableFuture which when run will run the
underlying runnable and which, as a Future, will yield
the given value as its result and provide for cancellation of
the underlying task. |
| since | 1.6 |
|
| protected RunnableFuture<T> |
newTaskFor(Callable callable) Returns a RunnableFuture for the given callable task.
| callable | the callable task being wrapped |
| return | a RunnableFuture which when run will call the
underlying callable and which, as a Future, will yield
the callable's result as its result and provide for
cancellation of the underlying task. |
| since | 1.6 |
|
| public Future |
submit(Runnable task)
|
| public Future<T> |
submit(Runnable task, Object result)
|
| public Future<T> |
submit(Callable task)
|