Yesterday i built a little test program that created 10 threads, where in each i called a function which run a quite big loop. After multiple testings i realised that when running each function in a different thread, and waiting for all of them to finish of course, that it would terminate at almost half the time as when running the function 10 times in the same process. How's that possible? I know it can be done in multiprocessor system, but mine is Intel Core 2 Duo ( Two cores but still one processor ). Am i missing something? Can multicored processor run faster when using multithreading?