【发布时间】:2019-01-07 20:31:18
【问题描述】:
所以我知道即使是多线程的python进程也不能同时使用多个核心。 但是,默认情况下,这是否意味着 python 进程被“固定”到一个 CPU 上?固定,我的意思是,python 进程是否总是使用相同的 CPU,或者相同的进程是否可以超时使用我机器的不同 CPU?
【问题讨论】:
-
这是特定于操作系统的。操作系统通常会在它认为合适的时候围绕 CPU 迁移进程。
-
我从来没有听说过有自动固定的操作系统——这将是一件非常愚蠢的事情,因为你会浪费资源:假设你启动了 10 个进程,然后退出所有随机分配给 CPU 2 的。CPU 1 现在是 100%,CPU 2 是 0%?太傻了。
-
此外,有些具有特殊命令,可用于设置 CPU 亲和性,将其固定到特定 CPU。例如:howtogeek.com/howto/windows-vista/…
-
...无论如何,这与 Python 或 GIL 的 或 无关。 GIL 会阻止您同时使用多个 CPU(对于需要保留它的操作)。固定是指不在 CPU 之间移动,这与您同时使用多少个 CPU 完全无关。
-
这不是一个 python 问题。它完全取决于操作系统调度程序的实现。在 Linux 上,您可以使用
taskset指定您的进程要使用的一个或多个核心。