为什么我的CPU核心数是2,但是用multiprocessing.cpu_count()得到4?

Why my CPU core number is 2, but use multiprocessing.cpu_count() get 4?

在我的 Mac 中:MacBook Pro(Retina,13 英寸,2015 年初)

有CPU信息:

  Model:                MacBook Pro
  Model description:    MacBookPro12,1
  CPU name:             Dual-Core Intel Core i5
  CPU rate:             2.7 GHz
  CPU number:           1
  Core number:          2

当我使用Python时执行代码:

from multiprocessing import cpu_count
print(cpu_count())  # 4

有输出4.

为什么不是 2 个?

我认为multiprocessing.cpu_count() returns逻辑核心的数量,而不是物理核心。比如我有一台surface pro 7,4个物理核心,8个逻辑核心,我的输出是:

>>> print(multiprocessing.cpu_count())
8

multiprocessing.cpu_count()os.cpu_count() 将 return 逻辑处理器。如果您想分别检查逻辑处理器和物理处理器,您可以使用 psutil 它们的用途如下所示。

import psutil

print(psutil.cpu_count(logical = False))
print(psutil.cpu_count(logical = True))

输出将是

2

4