Fundamentals of Microsoft .NET Programming: Multiprocessing
In multiprocessing, a computer uses multiple execution elements to perform several tasks at the same time. Those elements could be separate processors running on separate chips or, as is increasingly common these days, they can be separate cores within the same processor. A core is the part of a processor that actually executes commands. By putting more than one core on the same chip, a computer can greatly increase its potential computing power.
Today, two or four core computers are common, processors with six or eight cores are also available, and one experimental processor contains more than 1,000 cores! (To learn more about this innovative computer, see http://www.physorg.com/news/2011-01-scientists-cores-chip.html.)
With the end of Moore’s Law looming over the horizon, these sorts of multi-core systems offer a potential road to increased performance, but multiple cores do not guarantee that applications will run faster. The operating system itself may be able to run different programs on different cores, but a single program could become stuck on a single core and have limited performance. You can allow a single program to run on multiple cores by using multiple threads.