## org.springframework.scheduling.concurrent
Class ConcurrentTaskExecutor

    java.lang.Object
      org.springframework.scheduling.concurrent.ConcurrentTaskExecutor

All Implemented Interfaces:
  Executor, TaskExecutor, SchedulingTaskExecutor

    public class ConcurrentTaskExecutor

extends Object
implements SchedulingTaskExecutor, Executor

Adapter that takes a JDK 1.5 `java.util.concurrent.Executor` and exposes a Spring `TaskExecutor` for it.

NOTE: This class implements Spring's `TaskExecutor` interface as well as the JDK 1.5 `Executor` interface, with the former being the primary interface, the other just serving as secondary convenience. For this reason, the exception handling follows the TaskExecutor contract rather than the Executor contract, in particular regarding the `TaskRejectedException`.

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.

Since:
  2.0
Author:
  Juergen Hoeller
See Also:
  `Executor`, `ThreadPoolExecutor`, `Executors`, `ThreadPoolTaskExecutor`

Constructor Summary
`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.

Method Summary
`void` `execute(Runnable task)` Delegates to the specified JDK 1.5 concurrent executor.
`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(Executor concurrentExecutor)` Specify the JDK 1.5 concurrent executor to delegate to.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### ConcurrentTaskExecutor

    public ConcurrentTaskExecutor()

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

  See Also:
    `Executors.newSingleThreadExecutor()`

### ConcurrentTaskExecutor

    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

Method Detail

### setConcurrentExecutor

    public void setConcurrentExecutor(Executor concurrentExecutor)

  Specify the JDK 1.5 concurrent executor to delegate to.

### getConcurrentExecutor

    public Executor getConcurrentExecutor()

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

### execute

    public void execute(Runnable task)

  Delegates to the specified JDK 1.5 concurrent executor.

  Specified by:
    `execute` in interface `Executor`
  Specified by:
    `execute` in interface `TaskExecutor`
  Parameters:
    `task` - the `Runnable` to execute (never `null`)
  See Also:
    `Executor.execute(Runnable)`

### prefersShortLivedTasks

    public boolean prefersShortLivedTasks()

  This task executor prefers short-lived work units.

  Specified by:
    `prefersShortLivedTasks` in interface `SchedulingTaskExecutor`
  Returns:
    `true` if this `TaskExecutor` prefers short-lived tasks

Copyright © 2002-2008 The Spring Framework.