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:
So the solution is to shrink the queue!