如何在 多核 机器上运行的 C 锐利代码中使用 硬件线程 ?任何例子将不胜感激。

我希望在我机器的两个内核上并行运行两个线程 。如果我在 C 语言中创建普通的软件线程,它们可能会在单核上运行。是否可以在两个内核上隐式并行运行这两个线程以获得更好的性能?

最佳答案

您可以查看“处理器亲和力”。

您可以使用 System.Diagnostics 命名空间强制进程在特定处理器上运行。
以下行将更改与处理器 1 和 2 的当前进程关联

System.Diagnostics.Process.GetCurrentProcess().ProcessorAffinity = (System.IntPtr)3;

Process.ProcessorAffinity 属性 获取或设置可以调度运行此进程中的线程的处理器。

下表显示了双处理器系统的 ProcessorAffinity 值选择。
  Value   Description

    0   Not allowed
    1   Use processor 1
    2   Use processor 2
    3   Use both processors 1 and 2

有关更多详细信息,请参阅以下 MSDN 引用--> http://msdn.microsoft.com/en-us/library/system.diagnostics.process.processoraffinity.aspx

关于c# - 如何在多核机器上运行的 C# dot net 代码中使用硬件线程?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2490711/

10-17 00:53