С момента появления библиотеки thread
в C++ 11 я просматривал свой код, внося некоторые изменения, чтобы отвести его от многопоточного кода платформы для переносимой стандартной библиотеки код.Сравнение Win32 CMutex и стандартной библиотеки std :: mutex
Однако, я заинтригован, есть ли разница в производительности или функциональности между стандартной библиотекой std::mutex
и std::lock_guard<std::mutex>
и Win32 конкретного CMutex
и CSingleLock
.
У меня нет опыта с профилированием многопоточного кода, и я не знаю внутренних компонентов любого из двух классов mutex, поэтому я даже не смог бы угадать догадки.
Как примечание стороны, 'CMutex' и' CSingleLock' не из * Win32 *, а из * MFC *, сторонней библиотеки C++, которая обертывает * Win32 * C-API. Хотя на практике существует, вероятно, соответствие 1-к-1 между «CMutex» и базовым мьютеком Win32. –
@ChristianRau MFC не является третьей стороной: она написана Microsoft. – rubenvb
@rubenvb Тем не менее это не что иное, как обертка вокруг * Win32 * и не связана с ним каким-либо другим способом. Просто две стороны разработали эти две вещи для одной и той же компании. –