Moh*_*HME 2 mutex pthreads c++11
尽管如此,使用 C++11 pthread_mutexmutex ( ) 会使 pthread 安全吗?#include <mutex>
请往下找一个例子:
// Creating Server thread
pthread_create(&server_thread, NULL,Server,NULL);
// Creating Client thread
pthread_create(&client_thread, NULL, Client,NULL);
// Wait until client_thread exits
pthread_join( client_thread, NULL);
Run Code Online (Sandbox Code Playgroud)
服务器和客户端都调用foo().
mutex mut;
void foo (){
mut.lock();
CRITICAL_WRITE();
mut.unlock();
}
Run Code Online (Sandbox Code Playgroud)
它是特定于实现的。我所了解的 C++11 标准库(例如libstdc++在 GCC 4.9 中,也可能libc++来自Clang/LLVM)实际上是在 Linux 上现有的pthreads(7)库之上构建的。
原则上有人可以直接使用系统调用在 Linux 上构建一些 C++11 标准库(例如futex(2) - 与手写的汇编代码混合 - 用于互斥锁),但我不知道这样的 C++11 库。
这些线程是在 Linux 上的 pthreads 中构建的,位于低级clone(2)系统调用之上。
所以你没有正式的保证,但实际上你今天相当安全(在 Linux 上)
| 归档时间: |
|
| 查看次数: |
1637 次 |
| 最近记录: |