二值信号量 vs 互斥量

一、对比表

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

二、总结

  1. 核心定位:二值信号量管 "同步",互斥量管 "互斥";
  2. 关键区别:互斥量有 "资源归属" 和 "优先级继承",二值信号量无;
  3. 避坑原则:保护共享资源优先用互斥量,时序协调优先用二值信号量;
  4. 禁忌:中断中绝不能操作互斥量,二值信号量仅能在中断中 "释放",不能 "获取"。
相关推荐
hgfsjk5 分钟前
野莓采集图片修改指南:从单张处理到批量优化
大数据·经验分享·笔记·其他
咖啡忍者21 分钟前
【SAP BASIS】Section 11: SAP System Landscape
笔记
嵌入式DZC29 分钟前
嵌入式开发笔记随记
笔记
懿路向前33 分钟前
【唤醒实战笔记】2026-09-29 | 智能体提示词迭代史(v1 → v8)
linux·笔记·算法
2601_957883841 小时前
2026年9月:雷神专业维修服务保障
笔记
71-32 小时前
MySQL密码重置
数据库·笔记·学习·mysql
咖啡忍者2 小时前
【SAP BASIS】Section 13: Managing Transport Request
笔记
bllovepigpig3 小时前
操作系统个人学习笔记(四):K8s基础
笔记·学习·kubernetes
有范先生3 小时前
懒人代餐即食米饭:常温全能型,让一顿热饭不受厨房和冰箱限制
笔记
高山有多高4 小时前
【Linux笔记】Linux基本指令
linux·运维·笔记