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-limitproperty, 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 toReentrantLockwould mitigate that?