Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我的应用程序中有许多活动线程,我有这些线程的pthread_tID,并且可以在必要时获取其他 ID。这些存储在一个单独的数组中。
pthread_t
如何确定特定线程当前正在运行(或最近运行的线程)从另一个线程调用的 CPU 的 ID/编号。
sched_getcpu(2)仅适用于调用线程,并且pthread_getaffinity_np只给我允许的 cpu 掩码。/proc同样没用,只给我整个过程的 CPU ID。
sched_getcpu(2)
pthread_getaffinity_np
/proc
我需要它来调试/调整 NUMA 感知代码。
至少在 Lnux 上,您可以tid通过调用gettid().
tid
gettid()
然后通过读取第 39 个元素来查找 CPU id /proc/<pid>/task/<tid>/stat。
/proc/<pid>/task/<tid>/stat
(通过哪里pid读取getpid())
pid
getpid()
也可以看看:
如何通过 /proc 文件系统获取 CPU id?
如何获取线程的 LW 进程 ID?