Dol*_*hin 3 java spring spring-async
我读过代码但没有找到ThreadPoolTaskExecutor的默认池类型。ThreadPoolTaskExecutor的默认线程池是什么?newFixedThreadPool 还是 newCachedThreadPool?
对于纯spring应用,默认TaskExecutor会按照以下顺序解析(源码在这里):
org.springframework.core.task.TaskExecutorjava.util.concurrent.Executor名字和名字
taskExecutorSimpleAsyncTaskExecutor所以如果你不配置任何东西,默认情况下它将使用SimpleAsyncTaskExecutor内部不使用JDK的ThreadPoolExecutor来创建线程。因此没有线程池,并且将为每个异步调用创建一个新线程。
对于 spring-boot 应用程序,它将自动配置一个ThreadPoolTaskExecutorbean(文档)。由于ThreadPoolTaskExecutor是 的一种类型org.springframework.core.task.TaskExecutor,因此将根据上述顺序将其用作默认值。
ThreadPoolTaskExecutor在内部使用 JDK 的ThreadPoolExecutor,但既不使用它newFixedThreadPool(),也不newCachedThreadPool()创建它ThreadPoolExecutor。相反,它直接调用其构造函数来创建,然后根据应用程序属性配置其设置。(源代码此处)
| 归档时间: |
|
| 查看次数: |
5075 次 |
| 最近记录: |