Priest512
@Priest512
Разработчик .NET, С++

Как в коде узнать про гиперпотоковость?

Всем доброго вечера! Интересуюсь многопоточным программированием, задался вопросом, а как узнать поддерживает ли процессор многопоточность? К примеру, если организовывать синхронизацию потоков, существует несколько возможных вариантов неблокирующих конструкций. Одна из них, это для процессоров с технологией HyperThreading использовать метод SpinWait класса Thread, это эквивалент Win32-метода YieldProcessor. Рихтер пишет, что в процессорах, не поддерживающих данную технологию, вызов данного макроса позволяет писать код, независимый от архитектуры процессора. Я вот задумался, а можно ли написать код, который будет учитывать возможности процессора и при этом будут вызываться более конкретные методы, а также использоваться различные конструкции синхронизации?
  • Вопрос задан
  • 2408 просмотров
Пригласить эксперта
Ответы на вопрос 1
@mayorovp
Насколько я понимаю, дело не в HyperThreading - а в числе одновременно исполняемых потоков. В этом плане HyperThreading и "честные" многоядерные процессоры ничем не отличаются. Так что можете использовать функцию GetMaximumProcessorCount.

msdn.microsoft.com/en-us/library/windows/desktop/d...

PS а вообще, забудьте про устаревшие технологии. Сейчас в телефоны по 4 ядра ставят.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы