我正在 Mac OS 和 BSD 上寻找一个与 Linux 的 sched_getcpu()
和 Windows 的 GetCurrentProcessorNumberEx()
等效的函数,以便实现一个库cpu本地存储。显然可以使用 cpuid 或 rdtscp 指令来模拟这一点,但通过内核合作可以做得更好:https://lkml.org/lkml/2007/1/6/190 .
我已经知道,当我使用该信息时,线程的当前 CPU 可能会发生变化。
最佳答案
有one或two涵盖 OSX 队列跟踪的问题,以及 dispatch_get_global_queue wiki 页面涵盖了 BSD 的等效内容。我不知道是否可以将队列映射到 CPU,但如果可以,那似乎是最接近的等效项。
关于multithreading - 对于 Mac 和 BSD,如何找到当前线程运行的 cpu?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10576195/