public class

ConcurrentTaskExecutor

extends Object
implements SchedulingTaskExecutor
java.lang.Object
   ↳ org.springframework.scheduling.concurrent.ConcurrentTaskExecutor
Known Direct Subclasses

Class Overview

Adapter that takes a JDK 1.5 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 java.util.concurrent.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.

See Also

Summary

[Expand]
Inherited Constants
From interface org.springframework.core.task.AsyncTaskExecutor
Public Constructors
ConcurrentTaskExecutor()
Create a new ConcurrentTaskExecutor, using a single thread executor as default.
ConcurrentTaskExecutor(Executor concurrentExecutor)
Create a new ConcurrentTaskExecutor, using the given JDK 1.5 concurrent executor.
Public Methods
void execute(Runnable task, long startTimeout)
Execute the given task.
void execute(Runnable task)
Execute the given task.
final Executor getConcurrentExecutor()
Return the JDK 1.5 concurrent executor that this adapter delegates to.
boolean prefersShortLivedTasks()
This task executor prefers short-lived work units.
final void setConcurrentExecutor(Executor concurrentExecutor)
Specify the JDK 1.5 concurrent executor to delegate to.
<T> Future<T> submit(Callable<T> task)
Submit a Callable task for execution, receiving a Future representing that task.
Future<?> submit(Runnable task)
Submit a Runnable task for execution, receiving a Future representing that task.
[Expand]
Inherited Methods
From class java.lang.Object
From interface java.util.concurrent.Executor
From interface org.springframework.core.task.AsyncTaskExecutor
From interface org.springframework.core.task.TaskExecutor
From interface org.springframework.scheduling.SchedulingTaskExecutor

Public Constructors

public ConcurrentTaskExecutor ()

Create a new ConcurrentTaskExecutor, using a single thread executor as default.

public ConcurrentTaskExecutor (Executor concurrentExecutor)

Create a new ConcurrentTaskExecutor, using the given JDK 1.5 concurrent executor.

Parameters
concurrentExecutor the JDK 1.5 concurrent executor to delegate to

Public Methods

public void execute (Runnable task, long startTimeout)

Execute the given task.

Parameters
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 execute(Runnable)).

public void execute (Runnable task)

Execute the given task.

The call might return immediately if the implementation uses an asynchronous execution strategy, or might block in the case of synchronous execution.

Parameters
task the Runnable to execute (never null)

public final Executor getConcurrentExecutor ()

Return the JDK 1.5 concurrent executor that this adapter delegates to.

public boolean prefersShortLivedTasks ()

This task executor prefers short-lived work units.

Returns
  • true if this TaskExecutor prefers short-lived tasks

public final void setConcurrentExecutor (Executor concurrentExecutor)

Specify the JDK 1.5 concurrent executor to delegate to.

public Future<T> submit (Callable<T> task)

Submit a Callable task for execution, receiving a Future representing that task. The Future will return the Callable's result upon completion.

Parameters
task the Callable to execute (never null)
Returns
  • a Future representing pending completion of the task

public Future<?> submit (Runnable task)

Submit a Runnable task for execution, receiving a Future representing that task. The Future will return a null result upon completion.

Parameters
task the Runnable to execute (never null)
Returns
  • a Future representing pending completion of the task