可以使用第三方包psutil实现
pip install psutil
写个Demo在win10上验证下效果
# coding: utf-8
import psutil
# 写个斐波那契数列计算函数,用于消耗cpu资源
def fibbo(number):
if number <= 2:
return 1
else:
return fibbo(number - 1) + fibbo(number - 2)
# 获取逻辑cpu的数量
count = psutil.cpu_count()
print(f"逻辑cpu的数量是{count}")
# Process实例化时不指定pid参数,默认使用当前进程PID,即os.getpid()
p = psutil.Process()
cpu_lst = p.cpu_affinity()
print("cpu列表", cpu_lst)
# 将当前进程绑定到cpu15上运行,列表中也可以写多个cpu
p.cpu_affinity([15])
# 运行函数消耗cpu资源
fibbo(80)
运行效果
我的本本CPU是8核(物理)16线程(逻辑)
逻辑cpu的数量是16
cpu列表 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
通过任务管理器监控发现确实运行在了CPU15上,效果不错~
以后有时间再验证下numa架构服务器上的运行效果~