【发布时间】:2013-05-27 03:48:09
【问题描述】:
自从在 C++11 中引入 thread 库以来,我一直在对我的代码进行一些更改,以将其从特定于平台的多线程代码转移到可移植的标准库代码。
但是,我很好奇标准库 std::mutex 和 std::lock_guard<std::mutex> 与 Win32 特定的 CMutex 和 CSingleLock 之间是否存在性能或功能差异。
我没有分析多线程代码的经验,而且我不知道这两个互斥锁类的内部结构,所以我什至无法猜测。
【问题讨论】:
-
顺便说明一下,
CMutex和CSingleLock不是来自 Win32,而是来自第三方 C++ MFC包装 Win32 C-API 的库。尽管在实践中,CMutex和底层 Win32 互斥体之间可能存在一对一的匹配。 -
@ChristianRau MFC 不是第 3 方:它是由 Microsoft 编写的。
-
@rubenvb 仍然只是 Win32 的包装,与它没有任何其他关系。只是开发这两个东西的两方为同一家公司工作。
标签: c++ winapi c++11 mutex standard-library