I have to write a not-so-large program in C++, using boost::thread.
The problem at hand, is to process a large (maybe thousands or tens of thousands. Hundreds and millon
As a ballpark number, you should probably keep the thread count between 10 and 100 to minimize lock contention and context switching overhead.