public interface AsyncTaskExecutor extends TaskExecutor
TaskExecutor
implementations,
offering an overloaded execute(Runnable, long)
variant with a start
timeout parameter as well support for <code>Callable</code>.
Note: The <code>Executors</code> class includes a set of methods that can convert some other common closure-like objects, for example, <code>PrivilegedAction</code> to <code>Callable</code> before executing them.
Implementing this interface also indicates that the TaskExecutor.execute(Runnable)
method will not execute its Runnable in the caller's thread but rather
asynchronously in some other thread.
SimpleAsyncTaskExecutor
,
SchedulingTaskExecutor
,
<code>Callable</code>,
<code>Executors</code>Modifier and Type | Field and Description |
---|---|
static long |
TIMEOUT_IMMEDIATE
Constant that indicates immediate execution
|
static long |
TIMEOUT_INDEFINITE
Constant that indicates no time limit
|
Modifier and Type | Method and Description |
---|---|
void |
execute(java.lang.Runnable task,
long startTimeout)
Execute the given
task . |
<T> java.util.concurrent.Future<T> |
submit(java.util.concurrent.Callable<T> task)
Submit a Callable task for execution, receiving a Future representing that task.
|
java.util.concurrent.Future<?> |
submit(java.lang.Runnable task)
Submit a Runnable task for execution, receiving a Future representing that task.
|
execute
static final long TIMEOUT_IMMEDIATE
static final long TIMEOUT_INDEFINITE
void execute(java.lang.Runnable task, long startTimeout)
task
.task
- the Runnable
to execute (never null
)startTimeout
- the time duration (milliseconds) within which the task is
supposed to start. This is intended as a hint to the executor, allowing for
preferred handling of immediate tasks. Typical values are TIMEOUT_IMMEDIATE
or TIMEOUT_INDEFINITE
(the default as used by TaskExecutor.execute(Runnable)
).TaskTimeoutException
- in case of the task being rejected because
of the timeout (i.e. it cannot be started in time)TaskRejectedException
- if the given task was not acceptedjava.util.concurrent.Future<?> submit(java.lang.Runnable task)
null
result upon completion.task
- the Runnable
to execute (never null
)TaskRejectedException
- if the given task was not accepted<T> java.util.concurrent.Future<T> submit(java.util.concurrent.Callable<T> task)
task
- the Callable
to execute (never null
)TaskRejectedException
- if the given task was not accepted