【发布时间】:2015-04-30 23:58:45
【问题描述】:
在 Windows 上,您可以为进程调用 SetProcessAffinityMask,为线程调用 SetThreadAffinityMask。但是,Windows 似乎只公开了 GetProcessAffinityMask,而不是用于进程的各个线程的类似 API。
我有一个多线程程序,可以在运行时将各个线程绑定到处理器。当我运行它时,我想(从外部)查询哪些线程在哪些处理器上运行,以确保它正常工作。我编写了一个小型命令行实用程序来执行此操作。但我似乎找不到找到单个线程绑定到哪个处理器或内核的方法。
这显然是可能的;我在网上看到过关于 adplus 调试实用程序的描述,它能够显示类似 pstack 的输出以显示线程亲和性。 Process Explorer 在多处理器机器上显示线程选项卡,显示线程的“理想处理器”。
有人知道如何查询这条信息吗?
【问题讨论】:
标签: windows multithreading winapi