嵌入式Linux从入门到精通之第十三节:系统编程之互斥与同步
Posted 产品人卫朋
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了嵌入式Linux从入门到精通之第十三节:系统编程之互斥与同步相关的知识,希望对你有一定的参考价值。
互斥锁(mutex)
mutex是一种简单的加锁的方法来控制对共享资源的访问,mutex只有两种状态,即上锁(lock)和解锁(unlock)。
在访问该资源前,首先应申请mutex,如果mutex处于unlock状态,则会申请到mutex并立即lock;如果mutex处于lock状态,则默认阻塞申请者。
unlock操作应该由lock者进行。
mutex用pthread_mutex_t数据类型表示,在使用互斥锁前,必须先对它进行初始化。
静态分配的互斥锁:
pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
动态分配互斥锁:
pthread_mutex_t mutex;
pthread_mutex_init(&mutex, NULL);在所有使用过此互斥锁的线程都不再需要使用时候,应调用pthread_mutex_destroy销毁互斥锁。
初始化互斥锁
#include <pthread.h>
int pthread_mutex_init(
pthread_mutex_t *mutex,
const pthread_mutexattr_t *attr);
功能:
初始化一个互斥锁。
参数:
mutex:互斥锁地址。
attr:互斥锁的属性,NULL为默认的属性。
返回值:
成功返回0,失败返回非0。
上锁
#include
以上是关于嵌入式Linux从入门到精通之第十三节:系统编程之互斥与同步的主要内容,如果未能解决你的问题,请参考以下文章