Da Wikipedia :
O hyperthreading funciona duplicando determinadas seções do processador - aquelas que armazenam o estado da arquitetura - mas não duplicando os principais recursos de execução. Isso permite que um processador com hyperthreading apareça como o processador "físico" usual e um processador "lógico" extra para o sistema operacional host (os sistemas operacionais sem HTT veem dois processadores "físicos"), permitindo que o sistema operacional agende dois threads ou processa simultaneamente e adequadamente. Quando os recursos de execução não seriam usados pela tarefa atual em um processador sem hyper-threading e, especialmente, quando o processador estiver parado, um processador equipado com hyper-threading pode usar esses recursos de execução para executar outra tarefa agendada. (O processador pode parar devido a uma falta de cache, imprevisão de ramificação,
Se você possui um sistema com quatro núcleos, quatro threads podem ser executados em um núcleo completo. Se você tiver um sistema de hyperthreading de núcleo duplo, dois threads poderão ser executados em um núcleo completo, mas com 4 threads, os threads 1 e 2 compartilharão um núcleo e os threads 3 e 4 compartilharão o outro núcleo. O Hyperthreading permite que dois threads sejam executados em paralelo (somente) se eles não usarem os mesmos recursos do processador. Portanto, em um caso ideal, você pode obter um alto grau de paralelização, mas, como declara a Wikipedia, o ganho de desempenho não é de 100%, mas de 15 a 30%.