gpt4 book ai didi

c - 获取线程最后调度的 CPU/核心

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:25:33 25 4
gpt4 key购买 nike

我的应用程序中有许多事件线程,我有 pthread_t ID,如果需要,可以获取其他 ID。这些存储在单独的数组中。

如何确定当前正在运行的特定线程(或最近运行的线程)从另一个线程调用的 CPU 的 ID/编号。

sched_getcpu(2) 仅适用于调用线程,pthread_getaffinity_np 仅提供允许的 cpu 掩码。 /proc 同样没用,只给我整个过程的 CPU ID。

我需要它来调试/调整 NUMA 感知代码。

最佳答案

至少在 Lnux 上你可以获得 tid通过调用 gettid() 为每个线程.

然后通过读取/proc/<pid>/task/<tid>/stat中的第39个元素来查找CPU id .

(其中 pid 是通过 getpid() 读取的)


另见:

关于c - 获取线程最后调度的 CPU/核心,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13417160/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com