Здравствуйте, barney, Вы писали:
B>Интересно, как реализованы базовые примитивы мультипоточности в C++? Такие как mutex
Конкретная реализация целиком зависит от рантайма и на разных платформах реализована по разному.
B>это приводит не просто к простою потока, а постоянной нагрузке B>при использовании std::mutex для критической секции такого не наблюдается.
Под Windows, например (VS2013), std::mutex реализован без использования вызовов WinAPI, почти так, как вы и описали, но spin блокировка крутится заданное число циклов (сейчас 4000) и уже по истечении этого времени квант потока отдается (он засыпает на pause). Фактически в С++ рантайм вынесены "кишки" стандартной critical section.