1

我的应用程序中有许多活动线程,我有这些线程的pthread_tID,并且可以在必要时获取其他 ID。这些存储在一个单独的数组中。

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

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

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

4

1 回答 1

2

至少在 Lnux 上,您可以tid通过调用gettid().

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

(通过哪里pid读取getpid()


也可以看看:

于 2012-11-16T13:35:23.453 回答