如何在 多核 机器上运行的 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/