我正在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/