If this works, let us know.
Also, you can try printing something everytime a thread is executed (maybe the tid) Update:
You can also try to control the number of threads (while queue also helps as in your code), Even semaphores will help.
I'm running off a dual-core, but cannot execute the command you've suggested - I get an invalid switch /AFFINITY error. Printing a loop index confirms hang on new thread creation. Thankfully oshalla found where my threads were blocking. I appreciate your help.