嵌入式Linux网络编程·笔记8·mutex线程互斥锁+sem线程信号量

本文详细介绍了嵌入式Linux中线程互斥锁(mutex)的初始化、加锁/解锁操作及销毁,以及条件变量的使用。同时讲解了线程信号量(sem)的初始化和操作,包括sem_wait和sem_post。这些内容对于理解和实现多线程间的同步至关重要。
摘要由CSDN通过智能技术生成

二十八、mutex线程互斥锁

1、pthread_mutex_init初始化互斥锁

1、头文件:#include<pthread.h>

2、函数原型:int pthread_mutex_init(pthread_mutex_t *restrict mutex, const pthread_mutexattr_t *restrict attr);

3、函数形参: mutex:互斥锁地址(需自定义,如:pthread_mutex_t mutex;);

                         attr:互斥锁的属性(一般设置为NULL表示使用默认属性)。

   注:(1)pthread_mutex_t是一个结构体类型,所以mutex实际上是一个结构体变量。

          (2)attr也可设置一些互斥锁的特殊功能。

4、函数返回值:总是返回0,所以这个函数不需要进行出错处理。

5、注意事项:互斥锁尽量作为全局变量

2、pthread_mutex_(try/un)lock加锁/解锁操作

1、pthread_mutex_lock(&mutex)(阻塞加锁)访问临界区加锁操作。

2、pthread_mutex_trylock( &mutex)(非阻塞加锁),通常不使用。

      注:与pthread_mutex_lock()类似,不同:锁已经被占据时返回 EBUSY 而不是挂起等待。

3、pthread_mutex_unlock(&mutex): 访问临界区解锁操。

注:mutex:互斥锁的地址。

3、pthread_mutex_destroy销毁互斥锁     

1、头文件:#include<pthread.h>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值