From a logical point of view an application may need dozens or hundreds of threads, some of which will we sleeping most of the time, but a very few will be always running co
This may make sense if
your program design benefits, in that you have parallel tasks that are best implemented in threads, or
some of your threads are I/O-bound, so they do not utilize the processors /cores on their own.