使用Spring和Executor进行异步调用

时间:2018-10-25 09:32:19

标签: spring spring-boot

我们真的需要在春季为@Async提供Executor吗?

如果我不使用线程池前面的Executor接口会发生什么?

1 个答案:

答案 0 :(得分:2)

在未提供自定义TaskExecutor的情况下,或者换句话说,即兴的Spring使用SimpleAsyncTaskExecutor创建线程来处理异步。

SimpleAsyncTaskExecutor -

  • 默认情况下,并发线程是无限的。支持通过concurrencyLimit属性进行控制
  • 不重复使用线程

基于TaskExecutor的-

  • 根据需要允许线程池的线程数有限
  • 由于我们使用线程池,因此可以重复使用线程,而不会产生开销。

Javadoc https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/core/task/SimpleAsyncTaskExecutor.html