请有人解释一下在什么情况下使用std::mutex对pthread_mutex_t是有好处的。我不明白为什么我们会使用pthread_mutex_t。谢谢
发布于 2016-05-09 08:25:20
互斥锁只是支持线程的系统上pthread_mutex的一个薄包装器。
通常,对std::线程原语的操作相对于本机版本(p线程或windows线程)来说是非常有限的。如果您不需要这些特性,那么应该始终使用std::version,但是如果您确实需要高级特性,那么您别无选择,只能使用本机版本。
native handle()方法正是基于这个原因而存在的。
发布于 2016-05-09 08:09:05
pthread_mutex_t是一个POSIX解决方案(可用于linux和其他UNIX系统),在c++11将同步原语引入c++库之前就已经存在了。您现在应该使用std::mutex,除其他外,它更跨平台(也可以在Windows下使用)。
发布于 2016-05-09 08:08:34
std::mutex来自标准库,所以如果您使用它,您的代码也会在不提供线程的平台上编译。例如,在windows下,std::mutex使用本机WinAPI互斥实现。
最好总是使用std::mutex。
https://stackoverflow.com/questions/37110571
复制相似问题