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

如何查看进程运行的CPU核心?操作系统如何调用多CPU核心?

问题解答

一、查看特定PID进程运行的CPU核心

1. 使用Python的psutil库

这是Python层面最便捷的解决方案,先安装依赖库:

pip install psutil

通过以下代码获取指定PID进程的核心编号:

import psutil

pid = 8755
try:
    proc = psutil.Process(pid)
    # 获取进程当前运行的CPU核心编号(从0开始计数)
    core_num = proc.cpu_num()
    print(f"进程{pid}当前运行在CPU核心{core_num}")
except psutil.NoSuchProcess:
    print(f"不存在PID为{pid}的进程")

2. 使用系统命令

  • Linux/macOS:

    • 用ps命令直接查询:
      ps -o psr -p 8755
      
      输出的PSR字段即为核心编号(从0开始)。
    • 用top实时监控:
      top -p 8755
      
      进入top界面后按f键,勾选P(Last Used Cpu)字段,即可看到进程当前使用的核心。
  • Windows:

    • 图形化方式:打开任务管理器 → 切换到「详细信息」标签 → 找到PID为8755的进程,查看「CPU」列的数值(核心编号从0开始)。
    • 命令行方式:
      wmic process where processid=8755 get processorid
      

二、操作系统调用CPU核心的方式

操作系统既不是通过「名称」也不是通过物理地址调用CPU核心,而是通过**逻辑CPU的数字标识符(索引)**来管理和调度的。

现代系统会把每个物理核心(包括超线程生成的逻辑核心)抽象为编号从0开始的调度实体(比如你的4核心系统对应编号0、1、2、3),内核调度器通过这些编号分配进程/线程到对应核心。Python的os.cpu_count()返回的数值就是逻辑核心总数,multiprocessing中设置进程亲和性时也是指定这些编号(例如process.cpu_affinity([0,1])限制进程仅在0、1核心运行)。

这些编号是内核层面的抽象,与CPU物理地址无关,用户层和应用程序只需与这些编号交互即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 10:23:13