我编写了代码,将我的用户名下的每个进程的亲和性设置为仅核心 0。我运行了此代码,然后它在完成后退出。
然后,即使我启动了一个全新的终端并用它打开了 python,它的亲和力仍然固定为核心 0。当然,预期的默认行为是新启动的 python shell 对核心 0 和核心 1 都有亲和力。
并不是因为有什么原因导致所有 Python 进程都具有相同的 CPU 亲和性——我通过将两个不同的 Python 进程设置为两个不同的核心来验证了这一点。
我进行的另一个实验是将只有 Python 进程的亲和性设置为核心 0(所有其他进程均未受影响)。然后,当我启动新的 Python shell 时,其亲和性仍然正常(未固定为仅 0)。这表明存在一些特殊的非 Python 进程,它们控制着新 Python 进程的 CPU 亲和性。
我的问题是:这个特殊的过程是什么?
作为参考,为了设置和检查 CPU 亲和性,我使用了psutil.Process.cpu_affinity
python 的psutil
库。