Задать вопрос
Priest512
@Priest512
Разработчик .NET, С++

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

Всем доброго вечера! Интересуюсь многопоточным программированием, задался вопросом, а как узнать поддерживает ли процессор многопоточность? К примеру, если организовывать синхронизацию потоков, существует несколько возможных вариантов неблокирующих конструкций. Одна из них, это для процессоров с технологией HyperThreading использовать метод SpinWait класса Thread, это эквивалент Win32-метода YieldProcessor. Рихтер пишет, что в процессорах, не поддерживающих данную технологию, вызов данного макроса позволяет писать код, независимый от архитектуры процессора. Я вот задумался, а можно ли написать код, который будет учитывать возможности процессора и при этом будут вызываться более конкретные методы, а также использоваться различные конструкции синхронизации?
  • Вопрос задан
  • 2409 просмотров
Подписаться 2 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Stepik
    Профессия "C# разработчик"
    1 неделя
    Далее
  • XYZ School
    C# для разработки игр
    5 месяцев
    Далее
  • Учебный центр IBS
    DEV-001_NET Шаблоны проектирования GoF. Редакция для .NET
    1 неделя
    Далее
Пригласить эксперта
Ответы на вопрос 1
@mayorovp
Насколько я понимаю, дело не в HyperThreading - а в числе одновременно исполняемых потоков. В этом плане HyperThreading и "честные" многоядерные процессоры ничем не отличаются. Так что можете использовать функцию GetMaximumProcessorCount.

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

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

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

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