thread pool
A fixed set of reusable threads that take tasks from a queue.
A pool such as Executors.newFixedThreadPool(n) creates its threads once and feeds them tasks from a BlockingQueue; size it near the core count for calculation and much larger (or use virtual threads) for waiting work.
See also