二值信号量 vs 互斥量

一、对比表

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

二、总结

  1. 核心定位:二值信号量管 "同步",互斥量管 "互斥";
  2. 关键区别:互斥量有 "资源归属" 和 "优先级继承",二值信号量无;
  3. 避坑原则:保护共享资源优先用互斥量,时序协调优先用二值信号量;
  4. 禁忌:中断中绝不能操作互斥量,二值信号量仅能在中断中 "释放",不能 "获取"。
相关推荐
xian_wwq2 小时前
【学习笔记】AGC协调控制系统概述
笔记·学习
x_yeyue2 小时前
三角形数
笔记·算法·数论·组合数学
憧憬成为java架构高手的小白3 小时前
docker学习笔记(基于b站多个视频学习)【未完结】
笔记·学习
RainCity4 小时前
Java Swing 自定义组件库分享(七)
java·笔记·后端
東隅已逝,桑榆非晚5 小时前
字符函数和字符串函数
c语言·笔记
Upsy-Daisy5 小时前
AI Agent 项目学习笔记(七):RAG 高级扩展——过滤检索、PgVector 与云知识库
人工智能·笔记·学习
智者知已应修善业6 小时前
【51单片机LED闪烁10次数码管显示0-9】2023-12-14
c++·经验分享·笔记·算法·51单片机
智者知已应修善业6 小时前
【51单片机2按键控制1个敞亮LED灯闪烁和熄灭】2023-11-3
c++·经验分享·笔记·算法·51单片机
w2018008 小时前
二年级下册语文看图写话作文:蛋壳的奇妙之旅
笔记
daanpdf8 小时前
初三中考英语作文模板万能句型及范文大全电子版
笔记