代码之家  ›  专栏  ›  技术社区  ›  luvieere

如何找到在C_中运行线程的处理器?

  •  4
  • luvieere  · 技术社区  · 15 年前

    如何找到在C_中运行线程的处理器?

    3 回复  |  直到 15 年前
        1
  •  4
  •   ConcernedOfTunbridgeWells    15 年前

    这不一定是一个常量-线程可以在其整个生命周期中调度到不同的内核上。如果需要,可以设置关联掩码将特定线程绑定到特定CPU。见 API docs for Thread.BeginThreadAffinity 有关在.NET中可以执行的操作的详细信息。

        2
  •  1
  •   Vlad    15 年前

    很可能.NET线程没有绑定到任何本机线程。>NET运行时可以随时在不同的本机线程和处理器之间移动.NET线程。

        3
  •  1
  •   Andrew    15 年前

    我不确定你能不能。您可以获取进程关联掩码(getprocessaffinitymask),并设置相同的掩码(setprocessaffinitymask)。您也可以设置线程关联掩码,但我的理解是,这样做会限制线程在已设置关联掩码的某个处理器上运行。

    如果深入研究在特定核心上运行的特定线程,您可能希望设置进程关联掩码以定义代码可以在其上运行的核心集,然后进程中的线程将在所选核心之间浮动。