linux线程互斥代码
时间: 2024-11-01 11:07:53 浏览: 5
浅析Linux下一个简单的多线程互斥锁的例子
在Linux中,线程之间的互斥通常通过锁机制来实现,比如常见的mutex(互斥量)、semaphore(信号量)或spinlock(自旋锁)。这里以mutex为例简单说明:
```c
#include <pthread.h>
// 创建互斥锁
pthread_mutex_t lock;
void acquire_lock() {
pthread_mutex_lock(&lock);
}
void release_lock() {
pthread_mutex_unlock(&lock);
}
int main() {
// 初始化互斥锁
pthread_mutex_init(&lock, NULL);
// 线程A获取并使用锁
acquire_lock();
// ... 线程执行操作 ...
// 线程B尝试获取锁,此处会阻塞直到线程A释放
acquire_lock();
// ... 线程B执行操作 ...
// 释放锁
release_lock();
release_lock(); // 每次使用完都要解锁
return 0;
}
```
在这个例子中,`acquire_lock()`用于尝试获取锁,如果当前线程已经持有该锁则会阻塞;`release_lock()`用于释放锁给其他等待的线程。
阅读全文