Как узнать количество ядер в Win32? - PullRequest
4 голосов
/ 12 апреля 2010

Я пишу программу на C для Windows, в которой нужно запустить столько потоков, сколько доступно ядер. Но я не знаю, как узнать количество ядер. Есть идеи?

Ответы [ 4 ]

6 голосов
/ 12 апреля 2010

Вы можете вызвать функцию GetSystemInfo WinAPI; он возвращает SYSTEM_INFO структуру, которая имеет число процессоров (то есть количество ядер в системе с несколькими ядрами).

5 голосов
/ 12 апреля 2010

Вы можете прочитать переменную среды NUMBER_OF_PROCESSORS.

1 голос
/ 12 апреля 2010

Даже если этот вопрос касается .NET, а ваш - C, основные ответы должны помочь:

Определение количества процессоров

0 голосов
/ 19 января 2017

Введите «cmd» при запуске Windows и откройте «cmd.exe». Теперь введите следующую команду:

WMIC CPU Get /Format:List

Вы найдете такие записи, как - "NumberOfCores" и "NumberOfLogicalProcessors". Обычно логические процессоры достигаются за счет многопоточности. Поэтому отношение обычно будет выглядеть так:

NumberOfLogicalProcessors = NumberOfCores * Количество потоков на ядро.

Поскольку каждое ядро ​​обслуживает блок обработки, следовательно, с многопоточностью блок логической обработки реализуется в реальном пространстве.

Подробнее здесь .

...