何时使用pthread_mutex_t

Jon*_*ill 6 c++ mutex pthreads

有人可以解释在什么情况下使用std :: mutex vs pthread_mutex_t是有益的.我不明白为什么我们会使用pthread_mutex_t.谢谢

Sme*_*eey 8

pthread_mutex_t是一个POSIX解决方案(可用于Linux和其他UNIX系统),它在c ++ 11将同步原语引入c ++库之前就已存在.您std::mutex现在应该使用,除此之外它更具跨平台性(也可以在Windows下使用).

  • *"特定于Linux的解决方案"* - 它比它更老,更广泛; 作为POSIX的一部分,它早在我记忆中就已经得到了UNIX系统的支持(即30年前它已经老了),VMS和其他系统也是如此. (5认同)

xax*_*xon 6

在支持pthread的系统上,std :: mutex只是pthread_mutex的薄包装。

通常,与本地版本(pthread或Windows线程)相比,std ::线程原语上的操作非常有限。如果不需要这些功能,则应始终使用std ::版本,但如果确实需要高级功能,则别无选择,只能使用本机版本。

native handle() 正是由于这个原因,方法存在。