I have configured Spring ThreadPoolTaskExecutor, having in mind 16 threads at least and up to 256 on the need-basis:
<bean id="taskExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">
<property name="corePoolSize" value="16"/>
<property name="maxPoolSize" value="256"/>
<property name="queueCapacity" value="256"/>
</bean>
But as I can see from logs, thread pool size never exceeds corePoolSize:
Thread pool size: 16/256, active count: 16
Why is that so? What have I done wrong?
Got it:
If there are more than corePoolSize but less
than maximumPoolSize threads running,
a new thread will be created only if the queue is full.
So the solution is to shrink the queue!
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With