std :: mutex реализован с помощью критических секций, поэтому он намного быстрее, чем OS Mutex (в Windows). Однако это не так быстро, как в Windows CRITICAL_SECTION.
Тайминги просто плотный цикл в одном потоке:
423.76ns ATL CMutex
41.74ns std::mutex
16.61ns win32 Critical Section
У меня вопрос: что еще делает std :: mutex? Я посмотрел на источник, но не смог его уследить. Однако были дополнительные шаги, прежде чем он перешел к Crit Sec. Мои вопросы: полезны ли эти дополнительные шаги? То есть для чего нужны дополнительные шаги; что бы я упустил, используя CRITICAL_SECTION?
Также почему они назвали это Mutex, если это не реализовано с Mutex?