【发布时间】:2023-02-03 15:26:49
【问题描述】:
假设我有一个带有主进程 A 的 Python 程序,它将有一个主线程 a,并调用一些线程 a1、a2。我从 A 派生一个子进程,假设它是 B,并有主线程 b。
是否可以将 b 和 (a, a1, a2) 之间的 CPU 资源(CPU 内核)分开,使它们的 CPU 使用率不会相互竞争?
【问题讨论】:
-
您将能够通过多处理而不是多线程更好地共享您的 CPU 资源
假设我有一个带有主进程 A 的 Python 程序,它将有一个主线程 a,并调用一些线程 a1、a2。我从 A 派生一个子进程,假设它是 B,并有主线程 b。
是否可以将 b 和 (a, a1, a2) 之间的 CPU 资源(CPU 内核)分开,使它们的 CPU 使用率不会相互竞争?
【问题讨论】:
您可以使用实现 taskset 命令的 psutil 库。该命令允许您设置进程对某些 CPU 的亲和力。例如:
p = psutil.Process(pid)
p.cpu_affinity(cpus)
其中 cpus 是指定新 CPU 关联的整数列表。完整的文档是here。
【讨论】: