二值信号量 vs 互斥量

一、对比表

对比维度 二值信号量(Binary Semaphore) 互斥量(Mutex)
本质 计数器 = 1 的信号量("令牌开关") 独占资源的 "锁"
核心用途 任务间 / 中断 - 任务同步(时序协调) 保护共享资源(防止并发访问)
资源归属 无归属,任意任务可获取 / 释放 有归属(仅持有任务可释放)
关键机制 无优先级继承 / 天花板 支持优先级继承(解决优先级反转)
中断支持 支持(中断中 Give,任务中 Take) 不支持(仅任务中操作)
死锁风险 低(无归属) 高(同一任务重复获取会死锁)
释放限制 非持有任务也可释放 仅持有任务能释放
典型场景 中断通知任务、任务间同步触发 访问串口 / 传感器 / 全局变量

二、总结

  1. 核心定位:二值信号量管 "同步",互斥量管 "互斥";
  2. 关键区别:互斥量有 "资源归属" 和 "优先级继承",二值信号量无;
  3. 避坑原则:保护共享资源优先用互斥量,时序协调优先用二值信号量;
  4. 禁忌:中断中绝不能操作互斥量,二值信号量仅能在中断中 "释放",不能 "获取"。
相关推荐
Try,多训练2 小时前
论文排版之添加图片、表格、公式的题注
经验分享·笔记
71-32 小时前
Android studio中真机操作
android·笔记·学习·其他·android studio
程序员夏末3 小时前
【LeetCode | 第六篇】算法笔记
笔记·算法·leetcode
A923A3 小时前
【Vue3大事件 | 项目笔记】第二天
前端·vue.js·笔记·前端框架·前端项目
额1293 小时前
Docker搭建zabbix
笔记
killer Curry3 小时前
Polar CTF PWN 简单(1)(持续更新)
笔记·python·算法
北岛寒沫4 小时前
北京大学国家发展研究院 中国经济专题 课程笔记(第一课 绪论)
经验分享·笔记·学习
無限進步D5 小时前
高精度算法 cpp
c++·笔记·算法·入门
古一木5 小时前
ai学习笔记
笔记