Что такое Hyper-Threading

«Что такое Hyper-Threading» — вопрос из категории Linux, который задают на 23% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Hyper-Threading — это технология Intel, позволяющая одному физическому ядру CPU выполнять несколько потоков одновременно. Она создает виртуальные ядра (логические процессоры), улучшая утилизацию ресурсов.

Пример в Go:
При наличии Hyper-Threading runtime.NumCPU() вернет удвоенное количество физических ядер (если поддержка включена).

package main

import (
    "fmt"
    "runtime"
)

func main() {
    fmt.Println("Логических ядер:", runtime.NumCPU())
}

Нюансы:

  • Не всегда дает прирост (зависит от нагрузки).
  • Может мешать в задачах с жесткой синхронизацией.
  • В Go GOMAXPROCS по умолчанию равен NumCPU(), что может привести к contention.