What is the difference between hyper-threading and multiple cores?

Hyper-threading exposes multiple logical cores for a single physical CPU core. In simple terms, hyper-threading makes context-switching more efficient for each CPU core.

Dual-core chips, on the other hand, actually have two physical CPU cores which can execute different processes simultaneously.

There are also other multi-core chips that have many more than two cores, and--as Svish mentioned--Intel's latest multi-core offerings also support Hyper-threading on all the cores.

You can use a CPU identification utility like CPU-Z to determine how many cores you have. As you can see near the bottom of the screenshot, the CPU in this case has 2 physical cores. If the number of threads is higher than the number of cores, Hyper-threading is enabled. To-date all consumer-oriented CPUs with Hyper-threading have 2 threads per core, so if HT is enabled, the number of threads will be 2x the number of cores.

enter image description here

If you have an Intel CPU, you can download Intel's CPU ID utility instead.


Hyper-threading is where your processor pretends to have 2 physical processor cores, yet only has 1 and some extra junk.

The point of hyperthreading is that many times when you are executing code in the processor, there are parts of the processor that is idle. By including an extra set of CPU registers, the processor can act like it has two cores and thus use all parts of the processor in parallel. When the 2 cores both need to use one component of the processor, then one core ends up waiting of course. This is why it can not replace dual-core and such processors.

See also: This question