One app using 171 threads out of 256? What about the other programs? I have 62 processes running on my quad core right now. That is 62 processes all wanting to run threads. Most of those are background, but I count 10 foreground apps. If each one of those was to use 171 threads, my system would probably get hosed fast. Hell, if each one used just half that my desktop would be screwed. I don't mean to come down on you so hard, but if one of my junior programmers had said what you just said I would probably come down hard on them. I don't take Richter's opinion blindly, even though he has threading patents and I don't. It has been my experience that he is correct. Limiting the number of threads is good programming. I don't mean, "don't use threads." I mean, "don't use a lot of threads." It makes your program less complex, easier to debug, and usually speeds up the application. Throwing more threads at a problem without careful consideration of the consequences to the system at large can cause diminishing returns.
Without proper thread management by programmers, even machines with many pipelines will flounder. For an analogy, there used to be a local two-lane road that took me from my neighborhood out to the local highway. The road had a few cars on it so traffic was easy. Once I got to the 4-lane highway (4 north, 4 south) there was more traffic but I could drive to work fairly easy because of the extra lanes. Why? Because every other program errr neighborhood had a *little* road leading to the main highway, so there was never too much traffic dumped onto the road. Then the state decided to widen the highway to eight lanes each way to handle more traffic. When this happened a couple of local software errr real estate developers got greedy and expanded their real-estate and widened the local roads - more people in more cars driving in more lanes. So even though we have a new, wider highway it is now packed, and it now takes for ever for me to thrash errr drive my way to work.