linux线程互斥
Linux线程可以通过互斥锁(mutex)实现互斥。
互斥锁是一种保护共享资源的机制,它可以确保同一时间只有一个线程能够访问共享资源。当一个线程需要访问共享资源时,它必须先获得互斥锁,如果互斥锁已经被其他线程占用,那么该线程就会被阻塞,直到互斥锁被释放。
在Linux中,互斥锁可以使用pthread_mutex_t结构体来表示。可以使用pthread_mutex_init()函数初始化互斥锁,使用pthread_mutex_lock()函数获取互斥锁,使用pthread_mutex_unlock()函数释放互斥锁。
以下是一个简单的示例代码:
#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;
}
``
原文地址: https://www.cveoy.top/t/topic/efIM 著作权归作者所有。请勿转载和采集!