Multiple CPU (SMP)

If you buy a system that has multiple, identical CPUs all sharing memory and devices, you have an SMP box (SMP stands for Symmetrical Multi Processor, with the symmetrical part indicating that all the CPUs in the system are identical). In this case, the number of threads that can run concurrently (simultaneously) is limited by the number of CPUs. (In reality, this was the case with the single-processor box too!) Since each processor can execute only one thread at a time, with multiple processors, multiple threads can execute simultaneously.

Let's ignore the number of CPUs present for now—a useful abstraction is to design the system as if multiple threads really were running simultaneously, even if that's not the case. A little later on, in the Things to watch out for when using SMP section, we'll see some of the non-intuitive impacts of SMP.