Java spring ThreadPoolTaskExecutor在每次方法调用时创建新线程
我有ThreadPoolTaskExecutor的以下配置Java spring ThreadPoolTaskExecutor在每次方法调用时创建新线程,java,spring,multithreading,Java,Spring,Multithreading,我有ThreadPoolTaskExecutor的以下配置 <bean id="threadPoolTaskExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor"> <property name="corePoolSize" value="10" /> <property name="maxPoolSize" value="25" />
<bean id="threadPoolTaskExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">
<property name="corePoolSize" value="10" />
<property name="maxPoolSize" value="25" />
<property name="queueCapacity" value="30" />
</bean>
如果必须这样做,可以使用
org.springframework.core.task.SimpleAsyncTaskExecutor
:
<bean id="simpleTaskExecutor" class="org.springframework.core.task.SimpleAsyncTaskExecutor">
<property name="concurrencyLimit" value="25" />
</bean>
但是创建Java线程是昂贵的。通常建议重用线程,甚至可以说:
注意:此实现不重用线程!考虑线程池TaskExcExtuor实现,而不是特别是用于执行大量的短命任务。
你为什么需要新的线程?重用线程有什么问题?这正是线程池的用途。@M.Prokhorov任务是在新线程中执行SQL,但我不太了解线程,所以不确定如何实现它为什么必须是新线程?
<bean id="simpleTaskExecutor" class="org.springframework.core.task.SimpleAsyncTaskExecutor">
<property name="concurrencyLimit" value="25" />
</bean>