【发布时间】:2019-05-27 09:42:02
【问题描述】:
为什么我们需要AsyncTaskExecutor(以及它的实现,即SimpleAsyncTaskExecutor),而Java 已经提供了这些(通过Executors)?
【问题讨论】:
标签: java spring threadpool executorservice
为什么我们需要AsyncTaskExecutor(以及它的实现,即SimpleAsyncTaskExecutor),而Java 已经提供了这些(通过Executors)?
【问题讨论】:
标签: java spring threadpool executorservice
TaskExecutor 基本上是标准 JDK 的 Executor 之上的 Spring 抽象。
相当于JDK 1.5的
java.util.concurrent.Executor接口;现在在 Spring 3.0 中扩展它,以便客户端可以声明对Executor的依赖并接收任何TaskExecutor实现。
Spring 家伙构建自己的生态系统,并关心它如何与标准 JDK 共存。通常,这些实现更具竞争力、API 更丰富且面向 Spring(在 Spring 框架本身中积极使用)。
【讨论】:
SimpleAsyncTaskExecutor 是AsyncTaskExecutor 的实现,在运行@Async 方法时默认使用。但是,您可以提供自己的TaskExecutor 来代替默认的TaskExecutor。 Spring之所以这样做,是为了给你更多的灵活性。
【讨论】: