Previously, when I was creating the JMVC project in JAVA, I looked into the thread pool and integrated a coded Java thread pool that has a blocking queue, also a consumer loop that keeps the thread pool running active thread count and idle threads count. And threads count is configurable, I mostly designated the number not very big, recently I watched some material that mentioned some of these, and this number is related to the CPU architecture.
A modern computer often has one or more CPUs, and each CPU has more than one core, and through hyperthreading technology, one core has 2 threads, take my Hasee laptop CPU for example, Intel Corei7 11800 has 8 cores and 16 threads.
A thread pool app must be properly configured to adapt this threshold well in order to have high performance, this has to be tuned. So the threads count should be lower than the total number of threads, waits to explore more.