获取当前的cpu信息

时间:2013-08-15 14:38:00

标签: linux multithreading pthreads cpu

我正在编写使用pthreads的简单应用程序。线程是否可以获取有关运行哪个核心的信息?我正在尝试使用线程的线程亲和性,因此了解线程将运行的核心的详细信息将非常有用。

1 个答案:

答案 0 :(得分:3)

您可以使用 top 命令。 特别是:

top -H -p PID

您可以看到线程列表(针对单个进程)以及运行线程的CPU核心。

另外,您可以查看/proc/PID/task/TID/stat

要引用/proc/的阅读信息,请查看:Kernel.org

对于特定TID,如果执行:

`cat /proc/PID/task/TID/stat`

你会得到类似的东西:

  

1469(proc_name) S 1 1463 1463 0 -1 4202560 32 0 0 0 0 0 0 0 25 5   3 0 1287407887 305942528 507 102400000 1 1 0 0 0 0 0 4096 83179 0 0 0   -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0

其中从开始的第三个字段是线程的状态(在本例中为休眠),而从结尾开始的第六个字段是它最后运行的核心。

proc man page/proc/[pid]/stat部分中,每个字段都会被解释(在您的情况下是第39个字段)。