目录
1、信号量和互斥量的本质
① 信号量本质就是特殊的队列,相比队列去掉了读写信息的过程,只是增减计数值
② 互斥量本质就是特殊的信号量,不仅仅是二值信号量,相比二值信号量还加入了优先级继承
2、信号量机制、代码
2.1 获取信号量流程
获取信号量的代码和队列的代码几乎完全一样!
2.2 释放信号量流程
2.3 创建信号量
这里将buffer大小改为0,那么创建信号量时就不会去分配后面的buffer大小
3、互斥量机制、代码
3.1 优先级翻转问题
互斥量并非二值信号量!还引入了优先级继承
3.2 优先级继承解决优先级反转问题
3.3 互斥量代码
3.3.1 创建互斥量
3.3.2 获取互斥量
3.3.3 释放互斥量
有个疑问:如果一个任务同时拥有多个互斥量是怎么做的呢?
我猜是保持最高优先级,慢慢释放掉
还没看源码,了解具体流程,后面把整个源码看一遍