Как назначить группу процессоров приложению

#c #multithreading #winapi

#c #многопоточность #winapi

Вопрос:

Я хотел знать, существует ли Windows API, который сообщал бы мне текущую группу процессоров, назначенную моему приложению. В моей машине у меня в настоящее время есть две группы процессоров. Я хотел знать, на какой группе процессоров программно запущено мое приложение

Комментарии:

1. Я не уверен, но, возможно, вы найдете что-то полезное здесь: GetProcessAffinityMask и здесь: Группы процессоров

2. @TedLyngmo спасибо. Я посмотрел на это, и, к сожалению, это мне не очень поможет. У меня нет никакого способа определить ассоциацию процессоров с группой.

3. Вы видели ссылку на GetProcessGroupAffinity «похоронен там»? Кажется, он делает то, что вы хотите.

4. Близко к тому, что вы хотите, это функция GetProcessAffinityMask . Он возвращает вам маску, которая показывает, на каких процессорах разрешено запускать приложение.

5. @zx485 это не указывает, какой процессор назначен какой группе.

Ответ №1:

Используется GetProcessGroupAffinity() для определения группы (групп) процессоров, которым в данный момент назначен процесс. Процесс может быть назначен нескольким группам одновременно, поскольку привязка к процессору устанавливается для каждого потока, и процесс может иметь несколько потоков.

Используется GetThreadGroupAffinity() для определения группы процессоров, которой в данный момент назначен поток.