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

标签 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 可能会发生变化。

最佳答案

onetwo涵盖 OSX 队列跟踪的问题,以及 dispatch_get_global_queue wiki 页面涵盖了 BSD 的等效内容。我不知道是否可以将队列映射到 CPU,但如果可以,那似乎是最接近的等效项。

关于multithreading - 对于 Mac 和 BSD,如何找到当前线程运行的 cpu?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10576195/

相关文章:

c++ - 使用 2 个线程的代码运行速度比使用 1 个线程慢 6 倍

c - 如何正确重用套接字来发送UDP数据包?

swift - 为什么延迟动画和for循环不同步?

cocoa - NSTextView:加载 RTF, View 不会正确更新,直到鼠标移到控件上

适用于 OS X 的 C++ IDE

xcode - 使用 Storyboard的应用程序中没有宽度的初始窗口

c - 使用系统日志记录到我自己的日志文件?

md5 - BSD md5 与 GNU md5sum 输出格式?

multithreading - 强制MPI使用指定的编号。核心

java - 即使我不使用多线程,我的 Java 代码是否在多个线程上运行