C++11如何实现互斥锁?
时间: 2024-01-11 20:51:15 浏览: 32
在C语言中,可以使用pthread库中的互斥锁(mutex)来实现互斥操作。
具体步骤如下:
1. 在需要进行互斥操作的代码段前后分别使用pthread_mutex_lock和pthread_mutex_unlock函数来锁定和解锁互斥锁。
2. 首先需要定义一个pthread_mutex_t类型的变量来表示互斥锁。
3. 使用pthread_mutex_init函数对互斥锁进行初始化。
4. 在需要进行互斥操作的代码段前使用pthread_mutex_lock函数锁定互斥锁。
5. 在完成互斥操作后使用pthread_mutex_unlock函数解锁互斥锁。
6. 在不需要使用互斥锁时,使用pthread_mutex_destroy函数释放互斥锁。
示例代码如下:
```
#include <pthread.h>
pthread_mutex_t mutex;
void* thread_func(void* arg) {
// 加锁
pthread_mutex_lock(&mutex);
// 需要互斥的操作
// 解锁
pthread_mutex_unlock(&mutex);
return NULL;
}
int main() {
// 初始化互斥锁
pthread_mutex_init(&mutex, NULL);
// 创建线程
pthread_t thread;
pthread_create(&thread, NULL, thread_func, NULL);
// 等待线程结束
pthread_join(thread, NULL);
// 销毁互斥锁
pthread_mutex_destroy(&mutex);
return 0;
}
```