Python中如何指定特定处理器核心执行对应任务?
CPU核心绑定方案
这个需求完全可实现,不需要用到多线程编程,直接通过操作系统自带的工具就能完成进程和CPU核心的绑定,不同操作系统的操作方法如下:
Windows系统操作方法
- 手动绑定已启动的任务
- 打开任务管理器,切换到「详细信息」标签页
- 找到对应任务的进程,右键选择「设置相关性」
- 在弹出的窗口中取消勾选其他所有CPU核心,仅勾选需要绑定的对应核心编号,确认后生效
- 启动任务时直接指定绑定核心
使用start命令加亲和性参数,比如要启动任务1绑定到CPU0,命令为:start /affinity 1 任务1的程序路径affinity后的参数为16进制掩码,CPU0对应
0x1(二进制1)、CPU1对应0x2(二进制10)、CPU2对应0x4(二进制100),以此类推CPU n对应的掩码值为2^n的十六进制格式。
Linux系统操作方法
- 启动任务时直接指定绑定核心
使用taskset命令,比如要启动任务1绑定到CPU0,命令为:taskset -c 0 任务1的程序路径 - 绑定已运行的任务到指定核心
如果已知目标进程PID为1234,要绑定到CPU1,命令为:taskset -cp 1 1234-c参数后直接填写CPU核心编号即可,不需要额外计算掩码,完全匹配你任务1绑CPU0、任务2绑CPU1的使用需求。
注意事项
- 绑定前确认系统识别的核心编号符合你的预期,开启超线程的设备会显示逻辑核心编号,如果你需要绑定物理核心可以先查询核心的物理/逻辑编号映射关系
- 绑定完成后任务的调度会被限制在指定核心上,不会被操作系统自动调度到其他核心运行。
内容的提问来源于stack exchange,提问作者asmgx
相关产品推荐
相关产品推荐

