You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python如何基于指定CPU核心的使用率编写条件判断语句

解决方案

核心原理

psutil.cpu_percent(percpu=True, interval=1)返回的结果是一个按核心编号顺序排列的列表,列表的索引值与核心编号完全对应,你只需要先把这个返回结果存储为变量,就可以通过索引直接获取任意指定编号核心的使用率,灵活适配各种判断场景。

适配你需求的完整代码示例

import psutil

print("="*40, "CPU Info", "="*40)
print("Physical cores:", psutil.cpu_count(logical=False))
print("Total cores:", psutil.cpu_count(logical=True))
# 提前存储所有核心的使用率,索引对应核心编号
core_usages = psutil.cpu_percent(percpu=True, interval=1)
print("CPU Usage Per Core:")
for i, percentage in enumerate(core_usages):
    print(f"Core {i}: {percentage}%")
print(f"Total CPU Usage: {psutil.cpu_percent()}%")

# 自定义配置区,后续改需求直接修改这里即可
target_cores = [0, 1, 2, 3]  # 要检测的核心编号列表
usage_threshold = 50  # 使用率阈值

# 判断逻辑:任意目标核心超过阈值就触发操作
for core_id in target_cores:
    if core_usages[core_id] > usage_threshold:
        # 这里替换为你自己的自定义操作代码即可
        print(f"核心{core_id}使用率{core_usages[core_id]}%超出阈值,触发操作")
        # 若只要有一个核心触发就不需要继续检测,保留下面的break,否则删除
        break

其他场景适配方法

你只需要修改target_cores的取值就可以适配不同的检测需求:

  • 检测全部核心:target_cores = range(len(core_usages))
  • 检测指定零散核心(比如2、5、7号):target_cores = [2,5,7]
  • 需要所有目标核心都超过阈值才触发:把判断逻辑替换为
    if all(core_usages[core_id] > usage_threshold for core_id in target_cores):
        # 你的自定义操作
    

注意事项

psutil.cpu_percent的interval参数控制采样时长,数值越大返回的使用率结果越准确,若设置为0会返回上一次调用的统计结果,首次调用会返回0,实时检测场景建议保留interval≥1的设置。

内容的提问来源于stack exchange,提问作者Stpete111

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 05:24:06