The short answer: Maybe and kind of.
Each core can not do more work than one thing at a time, or more than one thing per tick. The operating system however can schedule work for many processes per core per any unit larger than one tick. This is a simple way of looking at hyper-threading.
If an application has long wait periods, then 32 threads could easily be loaded into memory and run simultaneously with little to no performance impact, which I assume is really the question. If 32 computation intensive threads were created, the longer work cycles versus shorter wait cycles would void the illusion of simultaneous work.
Really, hopefully if 32 threads is your goal you have a reason for picking this number and it is dynamic for further down the road. One processor might handle 32 threads well, another may choke and in 5-10 years 32 threads may be less than one thread per physical core. Regardless, testing the application with 4, 8, 16, and 32 threads to see which completes the work fastest on your application would be best to see if the workload scales well to your goal of 32 threads.
1You can only have 8 threads on your system but you should write your code to use as many threads as you have processors. Any attempt to launch more then 8 threads would result in the threads byeond 8 being queue by the OS. – Ramhound – 2014-05-27T11:08:19.887
3The way your question is phrased suggests you think each core has 8 processors. This is not the case. Each core has two logical processors, making total of eight logical processors for the CPU. – David Marshall – 2014-05-27T11:09:36.383
@Ramhound I get your meaning... But I have dozens of threads running on the dual core I am using right now :D – Austin T French – 2014-05-27T11:22:06.363