gpt4 book ai didi

Python多处理器编程

转载 作者:太空狗 更新时间:2023-10-29 21:44:23 24 4
gpt4 key购买 nike

在 python 中,有没有办法找出进程在哪个 CPU 上运行?例如,如果我使用多处理模块为不同的任务创建不同的进程,是否可以识别每个进程运行的核心?

最佳答案

简答

不,这是不可能的。

长答案

在一般情况下你不能这样做,因为进程没有绑定(bind)到特定的核心。进程没有始终保证在其上运行的固定 CPU:由操作系统决定,它使用哪个内核在特定时间运行特定进程。此决策称为 scheduling其实现是特定于操作系统的。

在特定操作系统上,您可以控制处理器如何用于执行特定进程。首选处理器的分配通常称为 processor affinity .即使设置亲和性也不能保证进程将始终在给定的内核上执行:最终由操作系统(和 CPU)决定最终如何执行调度。

在我所知道的所有操作系统中,我能想到的最接近的东西是 Linux 的 sched_getcpu,它可以用来“确定运行调用线程的 CPU”(参见 man sched_getcpu).即使您使用此功能检查当前 CPU,内核也可能会立即更改内核。

关于Python多处理器编程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8307369/

24 4 0
文章推荐: python - 如何创建一个能够包装实例、类和静态方法的 Python 类装饰器?
文章推荐: c# - 为 Web API Controller 创建 MVC Controller 代理
文章推荐: c# - 从 PropertyInfo 获取访问器作为 Func 和 Action 委托(delegate)