In Spring, @Async is working better when we don't define an manual executor : What is the use of defining manual thread executor inside the @Async annotation in spring? When we don't define executor, the @Async is working better.

Use case:
I have created a manual thread pool with max pool size is 50. If we pass 200 requests it process only up to 50 requests. But if we don't define manual thread executor for @Async, it is working fine.

@Async("manualThreadExecutor") - Stops after max pool size

@Async - works fine