public class ConcurrentTaskExecutor extends java.lang.Object implements SchedulingTaskExecutor
java.util.concurrent.Executor and
exposes a Spring TaskExecutor for it.
Also detects an extended java.util.concurrent.ExecutorService, adapting
the AsyncTaskExecutor interface accordingly.
Note that there is a pre-built ThreadPoolTaskExecutor that allows for
defining a JDK 1.5 ThreadPoolExecutor in bean style,
exposing it as a Spring TaskExecutor directly.
This is a convenient alternative to a raw ThreadPoolExecutor definition with
a separate definition of the present adapter class.
Executor,
ExecutorService,
ThreadPoolExecutor,
Executors,
ThreadPoolTaskExecutor| Constructor and Description |
|---|
ConcurrentTaskExecutor()
Create a new ConcurrentTaskExecutor,
using a single thread executor as default.
|
ConcurrentTaskExecutor(java.util.concurrent.Executor concurrentExecutor)
Create a new ConcurrentTaskExecutor,
using the given JDK 1.5 concurrent executor.
|
| Modifier and Type | Method and Description |
|---|---|
void |
execute(java.lang.Runnable task) |
void |
execute(java.lang.Runnable task,
long startTimeout) |
java.util.concurrent.Executor |
getConcurrentExecutor()
Return the JDK 1.5 concurrent executor that this adapter delegates to.
|
boolean |
prefersShortLivedTasks()
This task executor prefers short-lived work units.
|
void |
setConcurrentExecutor(java.util.concurrent.Executor concurrentExecutor)
Specify the JDK 1.5 concurrent executor to delegate to.
|
<T> java.util.concurrent.Future<T> |
submit(java.util.concurrent.Callable<T> task) |
java.util.concurrent.Future<?> |
submit(java.lang.Runnable task) |
public ConcurrentTaskExecutor()
Executors.newSingleThreadExecutor()public ConcurrentTaskExecutor(java.util.concurrent.Executor concurrentExecutor)
concurrentExecutor - the JDK 1.5 concurrent executor to delegate topublic final void setConcurrentExecutor(java.util.concurrent.Executor concurrentExecutor)
public final java.util.concurrent.Executor getConcurrentExecutor()
public void execute(java.lang.Runnable task)
execute in interface java.util.concurrent.Executorexecute in interface org.springframework.core.task.TaskExecutorpublic void execute(java.lang.Runnable task,
long startTimeout)
execute in interface org.springframework.core.task.AsyncTaskExecutorpublic java.util.concurrent.Future<?> submit(java.lang.Runnable task)
submit in interface org.springframework.core.task.AsyncTaskExecutorpublic <T> java.util.concurrent.Future<T> submit(java.util.concurrent.Callable<T> task)
submit in interface org.springframework.core.task.AsyncTaskExecutorpublic boolean prefersShortLivedTasks()
prefersShortLivedTasks in interface SchedulingTaskExecutortrue if this TaskExecutor prefers
short-lived tasks