org.springframework.scheduling.concurrent

## 类 ConcurrentTaskExecutor

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

- 所有已实现的接口:
    Executor, org.springframework.core.task.AsyncListenableTaskExecutor, org.springframework.core.task.AsyncTaskExecutor, org.springframework.core.task.TaskExecutor, SchedulingTaskExecutor
  直接已知子类:
    ConcurrentTaskScheduler, DefaultManagedTaskExecutor

      public class ConcurrentTaskExecutor
      extends Object
      implements org.springframework.core.task.AsyncListenableTaskExecutor, SchedulingTaskExecutor

  Adapter that takes a `java.util.concurrent.Executor` and exposes a Spring `TaskExecutor` for it. Also detects an extended `java.util.concurrent.ExecutorService`, adapting the `AsyncTaskExecutor` interface accordingly.

  Autodetects a JSR-236 `ManagedExecutorService` in order to expose `ManagedTask` adapters for it, exposing a long-running hint based on `SchedulingAwareRunnable` and an identity name based on the given Runnable/Callable's `toString()`. For JSR-236 style lookup in a Java EE 7 environment, consider using `DefaultManagedTaskExecutor`.

  Note that there is a pre-built `ThreadPoolTaskExecutor` that allows for defining a `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.

  从以下版本开始:
    2.0
  作者:
    Juergen Hoeller
  另请参阅:
    `Executor`, `ExecutorService`, `ThreadPoolExecutor`, `Executors`, `DefaultManagedTaskExecutor`, `ThreadPoolTaskExecutor`

- - ### 嵌套类概要

    嵌套类
    限定符和类型 | 类和说明
    --- | ---
    `protected static class` | `ConcurrentTaskExecutor.ManagedTaskBuilder` Delegate that wraps a given Runnable/Callable with a JSR-236 ManagedTask, exposing a long-running hint based on `SchedulingAwareRunnable` and a given identity name.

  - ### 字段概要

    - ### 从接口继承的字段 org.springframework.core.task.AsyncTaskExecutor

      `TIMEOUT_IMMEDIATE, TIMEOUT_INDEFINITE`

  - ### 构造器概要

    构造器
    构造器和说明
    `ConcurrentTaskExecutor()` Create a new ConcurrentTaskExecutor, using a single thread executor as default.
    `ConcurrentTaskExecutor(Executor executor)` Create a new ConcurrentTaskExecutor, using the given `Executor`.

  - ### 方法概要

    所有方法 实例方法 具体方法
    限定符和类型 | 方法和说明
    --- | ---
    `void` | `execute(Runnable task)`
    `void` | `execute(Runnable task, long startTimeout)`
    `Executor` | `getConcurrentExecutor()` Return the `Executor` that this adapter delegates to.
    `boolean` | `prefersShortLivedTasks()` This task executor prefers short-lived work units.
    `void` | `setConcurrentExecutor(Executor executor)` Specify the `Executor` to delegate to.
    `void` | `setTaskDecorator(org.springframework.core.task.TaskDecorator taskDecorator)` Specify a custom `TaskDecorator` to be applied to any `Runnable` about to be executed.
    `<T> Future<T>` | `submit(Callable<T> task)`
    `Future<?>` | `submit(Runnable task)`
    `<T> org.springframework.util.concurrent.ListenableFuture<T>` | `submitListenable(Callable<T> task)`
    `org.springframework.util.concurrent.ListenableFuture<?>` | `submitListenable(Runnable task)`

    - ### 从类继承的方法 java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### 构造器详细资料

    - #### ConcurrentTaskExecutor

          public ConcurrentTaskExecutor()

      Create a new ConcurrentTaskExecutor, using a single thread executor as default.
      另请参阅:
        `Executors.newSingleThreadExecutor()`

    - #### ConcurrentTaskExecutor

          public ConcurrentTaskExecutor(@Nullable
                                        Executor executor)

      Create a new ConcurrentTaskExecutor, using the given `Executor`.

      Autodetects a JSR-236 `ManagedExecutorService` in order to expose `ManagedTask` adapters for it.

      参数:
        `executor` - the `Executor` to delegate to

  - ### 方法详细资料

    - #### setConcurrentExecutor

          public final void setConcurrentExecutor(@Nullable
                                                  Executor executor)

      Specify the `Executor` to delegate to.

      Autodetects a JSR-236 `ManagedExecutorService` in order to expose `ManagedTask` adapters for it.

    - #### getConcurrentExecutor

          public final Executor getConcurrentExecutor()

      Return the `Executor` that this adapter delegates to.

    - #### setTaskDecorator

          public final void setTaskDecorator(org.springframework.core.task.TaskDecorator taskDecorator)

      Specify a custom `TaskDecorator` to be applied to any `Runnable` about to be executed.

      Note that such a decorator is not necessarily being applied to the user-supplied `Runnable`/`Callable` but rather to the actual execution callback (which may be a wrapper around the user-supplied task).

      The primary use case is to set some execution context around the task's invocation, or to provide some monitoring/statistics for task execution.

      从以下版本开始:
        4.3

    - #### execute

          public void execute(Runnable task)

      指定者:
        `execute` 在接口中 `Executor`
      指定者:
        `execute` 在接口中 `org.springframework.core.task.TaskExecutor`

    - #### execute

          public void execute(Runnable task,
                              long startTimeout)

      指定者:
        `execute` 在接口中 `org.springframework.core.task.AsyncTaskExecutor`

    - #### submit

          public Future<?> submit(Runnable task)

      指定者:
        `submit` 在接口中 `org.springframework.core.task.AsyncTaskExecutor`

    - #### submit

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

      指定者:
        `submit` 在接口中 `org.springframework.core.task.AsyncTaskExecutor`

    - #### submitListenable

          public org.springframework.util.concurrent.ListenableFuture<?> submitListenable(Runnable task)

      指定者:
        `submitListenable` 在接口中 `org.springframework.core.task.AsyncListenableTaskExecutor`

    - #### submitListenable

          public <T> org.springframework.util.concurrent.ListenableFuture<T> submitListenable(Callable<T> task)

      指定者:
        `submitListenable` 在接口中 `org.springframework.core.task.AsyncListenableTaskExecutor`

    - #### prefersShortLivedTasks

          public boolean prefersShortLivedTasks()

      This task executor prefers short-lived work units.
      指定者:
        `prefersShortLivedTasks` 在接口中 `SchedulingTaskExecutor`
      返回:
        `true` if this `TaskExecutor` prefers short-lived tasks