Hyper-threading is a processor feature that allows a single processor core to execute multiple process threads simultaneously. A CPU that supports hyper-threading splits each of its physical processor cores into two virtual cores, which increases the efficiency of a computer by letting it run more demanding applications. Hyper-threading was developed by Intel and used in many of their processors; AMD uses a similar technology in their processors, called Simultaneous Multithreading.
Each processor core in a CPU includes a set of execution units that perform a separate computational function, like multiplication or addition. Without hyper-threading, each one can only run a single process thread at a time, and depending on which calculations are required, many of those execution units will sit idle. Hyper-threading allows two separate threads to run together by pairing two that need different computational tasks. Running threads in parallel this way is not as fast as using two physical cores, but is still more efficient than running one thread at a time.
While hyper-threading can help a computer run more efficiently, it requires the support of the computer's operating system and other software. First, the operating system assigns each physical processor core two virtual core addresses. It then assigns threads in a way that splits calculations between the virtual cores and maximizes efficiency.
For a program to benefit from hyper-threading, it must be written in a way that splits its tasks into separate threads that can run concurrently. If a program only has one process thread at a time, it cannot send a second thread to the other virtual core. However, even if a computer is running a single-threaded application, it can run process threads from other applications at the same time, which helps a computer perform faster when multitasking.
NOTE: Hyper-threading is more technically complex and requires more power than an equivalent non-hyper-threaded processor. Intel generally reserves hyper-threading for its higher-end processors.