Re: внутренняя реализация std::mutex?
От: Videoman Россия https://hts.tv/
Дата: 16.05.18 20:54
Оценка:
Здравствуйте, barney, Вы писали:

B>Интересно, как реализованы базовые примитивы мультипоточности в C++? Такие как mutex

Конкретная реализация целиком зависит от рантайма и на разных платформах реализована по разному.

B>это приводит не просто к простою потока, а постоянной нагрузке

B>при использовании std::mutex для критической секции такого не наблюдается.

Под Windows, например (VS2013), std::mutex реализован без использования вызовов WinAPI, почти так, как вы и описали, но spin блокировка крутится заданное число циклов (сейчас 4000) и уже по истечении этого времени квант потока отдается (он засыпает на pause). Фактически в С++ рантайм вынесены "кишки" стандартной critical section.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.