如何获得Win32的内核数量?

我在Windows上编写一个程序,需要运行尽可能多的线程作为可用的核心。 但是我不知道如何获得核心的数量。 有任何想法吗?

您可以调用GetSystemInfo WinAPI函数; 它会返回一个SYSTEM_INFO结构,它具有多个处理器(这是具有多个核心CPU的系统上的核心数量)。

你可以读取NUMBER_OF_PROCESSORS环境变量。

即使这个问题涉及.NET和你的C,基本的回应应该有所帮助:

检测处理器的数量

在Windows启动时输入“cmd”并打开“cmd.exe”。 现在输入以下命令:

 WMIC CPU Get /Format:List 

您会找到像“ – ”NumberOfCores“和”NumberOfLogicalProcessors“的条目。 通常,逻辑处理器是通过线程来实现的。 因此,这种关系通常是这样的;

NumberOfLogicalProcessors = NumberOfCores *每个核心的线程数。

由于每个核心服务于一个处理单元,因此在线程化的情况下,逻辑处理单元在真实空间中实现。

更多信息在这里 。