pthread_mutex_t的__lock 等于 2
时间: 2024-06-14 22:07:25 浏览: 230
pthread_cond_wait() 用法深入分析
根据提供的引用内容,pthread_mutex_t的__lock等于2表示互斥锁已经被线程2锁定。互斥锁是一种线程同步机制,用于保护共享资源的访问。当一个线程获得了互斥锁后,其他线程需要等待该线程释放锁才能继续执行。
在Linux中,使用pthread_mutex_init函数初始化互斥锁,使用pthread_mutex_lock函数加锁,使用pthread_mutex_unlock函数解锁,使用pthread_mutex_destroy函数销毁互斥锁。
以下是一个示例代码,演示了如何使用互斥锁进行加锁和解锁操作:
```c
#include <pthread.h>
#include <stdio.h>
pthread_mutex_t mutex;
void* thread_func(void* arg) {
pthread_mutex_lock(&mutex); // 加锁
printf("Thread %ld acquired the lock\n", (long)arg);
// 执行需要保护的共享资源操作
printf("Thread %ld released the lock\n", (long)arg);
pthread_mutex_unlock(&mutex); // 解锁
return NULL;
}
int main() {
pthread_t thread1, thread2;
pthread_mutex_init(&mutex, NULL); // 初始化互斥锁
pthread_create(&thread1, NULL, thread_func, (void*)1);
pthread_create(&thread2, NULL, thread_func, (void*)2);
pthread_join(thread1, NULL);
pthread_join(thread2, NULL);
pthread_mutex_destroy(&mutex); // 销毁互斥锁
return 0;
}
```
阅读全文