嵌入式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从入门到精通之第十三节:系统编程之互斥与同步的主要内容,如果未能解决你的问题,请参考以下文章

嵌入式Linux从入门到精通之第三节:字符串处理函数

嵌入式Linux从入门到精通之第十五节:嵌入式系统简介

嵌入式Linux从入门到精通之第十二节:线程

嵌入式Linux从入门到精通之第十六节:U-boot分析

嵌入式Linux从入门到精通之第九节:系统编程

嵌入式Linux从入门到精通之第九节:系统编程