0

我有一个带有 4 个线程的 python 程序,我想获取其中一个线程的 cpu 和内存使用情况。我使用了 os.getpid() 然后使用 top -H -p 来获取父 pid 的信息。如果 os.getpid() 返回 3000,那么 top -H -p 会给出 pid 的 3000、3001、3002、3003 和 3004 的信息。我假设每个增量都是下一个线程,但总是这样吗?有没有更好的方法来获取一个线程的这些信息?我在 Linux 上运行 python 2.7。

谢谢

4

1 回答 1

0

很抱歉复活了一个老问题。我在 linux 上对这个问题的解决方案 - 在 python 线程中

  • 创建一个临时文件
  • 获取进程PID
  • 扫描 /proc/PID/task 以获取任务 pid
  • 在每个 /proc/PID/task/task-pid/io 中保存 wchar: 值
  • 将随机数量的字符写入临时文件(记住您写入的字符数)
  • 重新扫描 /proc/PID/task/task-pid/io 文件
  • 消除 wchar 中没有正确增加的任务 pid
  • 根据需要经常冲洗并重复以结束 1(或可能 0)任务 pid
于 2015-03-17T19:07:07.150 回答