Multithreading actually runs *slower* in absolute time, but frequently gives much better responses (you can control the execution from an interface).

If you have multiple CPUs then multiple threads will get scheduled concurrently. You can only have *one* thread running at once on a single CPU, they just get switched very quickly.

The easiest way of doing multithreading is to use the Boost Threads classes (www.boost.org). But, for simple things, use _beginthread (see MSDN). It's fairly self-explanatory