Cores and threads
Why a CPU is really several processors, and why it can juggle even more tasks.
A core is a complete processor: it can fetch instructions and execute them on its own. For decades a CPU had one. Since the mid-2000s, chipmakers have put several cores on the same chip instead of making a single core ever faster, so a laptop processor might have 8 or more and a server processor many dozens. Each core can run a different program, or a different piece of the same program, at the same time.
A thread is a sequence of instructions waiting to be run. Software creates threads, the operating system hands them to cores, and switches between them so quickly that dozens of apps seem to run at once. Many CPUs also offer simultaneous multithreading (Intel calls it Hyper-Threading): each core presents itself as two, so it can work on a second thread while the first is waiting for data. That is where specs like "8 cores, 16 threads" come from. The two threads share one core's machinery, so it is a useful boost, not double the speed.
More cores help only when the work can be split. Rendering video, compiling code or running many users' requests on a server split well, and get much faster with more cores. A single long chain of steps, where each step needs the previous result, cannot be split, and runs at the speed of one core. That is why both the number of cores and the speed of each one matter.
Keep in mind
- A core is an independent processor; modern CPUs have several to many.
- A thread is a stream of instructions the operating system assigns to a core.
- Simultaneous multithreading lets one core handle two threads, sharing its parts.
- More cores speed up work that can be split, not single-chain tasks.
Go deeper
- Multi-core processor on Wikipedia
- Simultaneous multithreading on Wikipedia
- Thread (computing) on Wikipedia