我在Windows上编写一个程序,需要运行尽可能多的线程作为可用的核心。 但是我不知道如何获得核心的数量。 有任何想法吗?
您可以调用GetSystemInfo
WinAPI函数; 它会返回一个SYSTEM_INFO
结构,它具有多个处理器(这是具有多个核心CPU的系统上的核心数量)。
你可以读取NUMBER_OF_PROCESSORS环境变量。
即使这个问题涉及.NET和你的C,基本的回应应该有所帮助:
检测处理器的数量
在Windows启动时输入“cmd”并打开“cmd.exe”。 现在输入以下命令:
WMIC CPU Get /Format:List
您会找到像“ – ”NumberOfCores“和”NumberOfLogicalProcessors“的条目。 通常,逻辑处理器是通过线程来实现的。 因此,这种关系通常是这样的;
NumberOfLogicalProcessors = NumberOfCores *每个核心的线程数。
由于每个核心服务于一个处理单元,因此在线程化的情况下,逻辑处理单元在真实空间中实现。
更多信息在这里 。