一个 python 处理固定到一个 CPU,还是可以使用多个 CPU 加班?

Is a python processed pinned to one CPU, or can it uses multiple CPU overtime?

所以我知道即使是多线程python进程也不能同时使用多核。 但是,默认情况下,这是否意味着 python 进程是 "pinned" 到一个 CPU?通过固定,我的意思是,python 进程是否始终使用相同的 CPU,或者相同的进程是否可以使用 超时 的不同 CPU我的机器?

默认情况下,python 进程未固定到特定的 CPU 核心。事实上,尽管有 GIL,单个 python 进程可以产生多个线程——每个线程都可以由 OS 在不同的 CPU 核心上同时调度。尽管 GIL 使得多个线程很难在任何给定时间实际取得进展(因为它们必须都争用锁),但即使这样也可能发生(本机代码可以释放 GIL,除非/直到它需要访问 Python 数据结构)。

当然,您可以使用操作系统实用程序将任何进程(包括 Python)固定到特定的 CPU 核心。