【问题标题】:Why do Spring offer its own task executors?为什么 Spring 提供自己的任务执行器?
【发布时间】:2019-05-27 09:42:02
【问题描述】:

为什么我们需要AsyncTaskExecutor(以及它的实现,即SimpleAsyncTaskExecutor),而Java 已经提供了这些(通过Executors)?

【问题讨论】:

    标签: java spring threadpool executorservice


    【解决方案1】:

    TaskExecutor 基本上是标准 JDK 的 Executor 之上的 Spring 抽象。

    相当于JDK 1.5的java.util.concurrent.Executor接口;现在在 Spring 3.0 中扩展它,以便客户端可以声明对 Executor 的依赖并接收任何 TaskExecutor 实现。

    The Javadoc of org.springframework.core.task.TaskExecutor

    Spring 家伙构建自己的生态系统,并关心它如何与标准 JDK 共存。通常,这些实现更具竞争力、API 更丰富且面向 Spring(在 Spring 框架本身中积极使用)。

    【讨论】:

      【解决方案2】:

      SimpleAsyncTaskExecutorAsyncTaskExecutor 的实现,在运行@Async 方法时默认使用。但是,您可以提供自己的TaskExecutor 来代替默认的TaskExecutor。 Spring之所以这样做,是为了给你更多的灵活性。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-12-06
        • 2020-05-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多