【问题标题】:How do I find the cpu the current thread is running on, for Mac and BSD?对于 Mac 和 BSD,如何找到当前线程正在运行的 cpu?
【发布时间】:2012-05-21 12:23:22
【问题描述】:

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

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

【问题讨论】:

    标签: multithreading macos bsd cpuid multiprocessor


    【解决方案1】:

    onetwo 问题涵盖了OSX 的队列跟踪,还有一个dispatch_get_global_queue wiki 页面涵盖了BSD 的等价物。我不知道您是否可以将队列映射到 CPU,但如果可以,那似乎是最接近的等价物。

    【讨论】:

      猜你喜欢
      • 2013-03-15
      • 2019-09-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-08
      相关资源
      最近更新 更多