See https://github.com/spring-projects/spring-boot/issues/39529, specifically:
The only possibility to limit the amount of parallel tasks is therefore the
spring.task.execution.simple.concurrency-limit
property, which essentially behaves like a max pool size. The issue I see here, is thatConcurrencyThrottleSupport
, which is being used under the hood, uses the synchronized blocks which leads to thread pinning and might cause several issues with virtual threads. Maybe switching toReentrantLock
would mitigate that?