У меня один процессор с 4 физическими ядрами, и каждое ядро имеет 2 потока. Но почему runtime.NumCPU () возвращает 4, а не 8?
Данные моего процессора:
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
Address sizes: 39 bits physical, 48 bits virtual
CPU(s): 4
On-line CPU(s) list: 0-3
Thread(s) per core: 2
Core(s) per socket: 2
Socket(s): 1
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 78
Model name: Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz
Когда я запускаю следующий код: fmt.Println(runtime.NumCPU())
, он выводит4.
Каждый аппаратный поток будет представлен программе Go как виртуальное ядро, поэтому на выходе должно быть 8, не так ли?
Но почему на выходе 4?