windows - 识别特定线程使用的处理器(核心)

标签 windows multithreading processor affinity

我想知道是否可以识别具有特定 thread-id 的线程使用的物理处理器(核心)?

例如,我有一个多线程应用程序,它有两 (2) 个线程(例如,thread-id = 10thread-id = 20)。我在具有双核处理器(核心 1 和核心 2)的系统上运行该应用程序。那么,如何获取 thread-id = 20 的线程使用的核心数?

附言Windows 平台。

谢谢,

丹尼斯。

最佳答案

除非您使用线程亲和性,否则不会将线程分配给特定的核心。对于每个时间片,线程可以在不同的内核上执行。这意味着如果有一个函数可以获取线程的核心,那么当您获得返回值时,线程很可能已经在另一个核心上执行。

如果您使用的是线程亲和性,则可以查看 Windows 线程亲和性函数 (http://msdn.microsoft.com/en-us/library/ms684847%28v=VS.85%29.aspx)。

关于windows - 识别特定线程使用的处理器(核心),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3366932/

相关文章:

linux - Windows命令行GIT密码提示

c++ - Direct2D 接口(interface)和模糊文本问题

c# - 如何在C#中访问UI线程

c# - 异步 Web Request、EntityFramework 和 DI,是如何工作的?

x86 - 为什么不能完全禁用分段?

c++ - C/C++ 如何在 linux 上获取处理器序列号

math - 不支持它的处理器上的 float 学?

java - 将FileInputStream和FileOutputStream传给ffmpeg进行转码(使用JAVE-Java音视频编码)

c - 使用 WinDbg 调试驱动程序 - 如何在 DriverEntry 设置断点?

java - 在 DCL 的情况下需要 volatile 关键字