如何查看线程在哪个CPU内核中运行?

如何查看线程在哪个CPU内核中运行?,第1张

如何查看线程在哪个CPU内核运行? 截至2014年,以下答案不再准确

任务不会睡在任何特定的内核中。而且调度程序不会提前知道它将在哪个内核上运行线程,因为这将取决于这些内核的未来使用情况。

要获取所需的信息,请查看/ proc / / task / / status。如果线程正在运行,则第三个字段将为“
R”。从最后一个字段开始的第六个将是线程当前正在运行的核心,或者如果线程当前未在运行,则它将最后运行(或已迁移到)该核心。

31466(bc) S 31348 31466 31348 34819 31466 4202496 2557 0 0 0 5006 16 0 0
20 0 1 0 10196934 121827328 1091 18446744073709551615 4194304 4271839
140737264235072 140737264232056 217976807456 0 0 0 137912326
18446744071581662243 0 0 17 3 0 0 0 0 0 0

当前未运行。最后一次运行在核心3上。

31466(bc) R 31348 31466 31348 34819 31466 4202496 2557 0 0 0 3818 12 0 0
20 0 1 0 10196934 121827328 1091 18446744073709551615 4194304 4271839
140737264235072 140737264231824 4235516 0 0 0 2 0 0 0 17 2 0 0 0 0

当前在核心2上运行。

要了解其余字段的含义,请查看Linux内核源代码-
尤其是或中的

do_task_stat
函数。
fs/proc/array.c
documentation/filesystems/stat.txt

请注意,所有这些信息在您获得时可能已过时。在您

open
在proc中对该文件进行调用与该调用返回之间的某个时间点是正确的。



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/4897731.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-11-12
下一篇2022-11-12

发表评论

登录后才能评论

评论列表(0条)

    保存