Multithreading and hyperthreading are very similar at first glance: Both are tasked with efficiently distributing and processing threads in CPU cores. However, hyperthreading is a subcategory of multithreading and is also called simultaneous multithreading (SMT). To understand multithreading, it’s important to know that threads are instruction queues that are processed differently depending on the hardware and software.
Multithreading means that multiple instruction queues are managed simultaneously. However, while multithreading methods such as switch-on event multithreading and time-slice multithreading are referred to as pseudo-simultaneity, since threads do not run simultaneously, simultaneous multithreading, i.e. hyperthreading, stands for true simultaneity in processing. Furthermore, hyperthreading is a hardware-supported SMT technology, while multithreading can also be supported exclusively by programs and software.