对于Mac和BSD,我如何找到当前线程运行的cpu?

时间:2012-05-14 00:05:13

标签: multithreading macos bsd cpuid multiprocessor

我正在寻找Mac OS和BSD上的一个功能,它相当于Linux的sched_getcpu()和Windows GetCurrentProcessorNumberEx(),以便为cpu本地存储实现一个库。显然可以使用cpuid或rdtscp指令来模拟它,但是可以通过内核协作做得更好:https://lkml.org/lkml/2007/1/6/190

我已经知道线程的当前CPU可能会在我使用该信息时发生变化。

1 个答案:

答案 0 :(得分:2)

onetwo个问题,涵盖OSX的队列跟踪,以及dispatch_get_global_queue wiki页面,其中包含BSD的等效内容。我不知道你是否可以将队列映射到CPU,但如果是这样,那似乎是最接近的等价物。