[STM32F3] 使用互斥锁保护共享资源

[复制链接]
jkl21 发表于 2024-8-10 16:59 | 显示全部楼层
在访问共享资源前禁用中断,访问结束后重新使能中断。这种方法简单但粗暴,因为它会暂停所有中断服务例程的执行,可能会影响系统的实时性。
alvpeg 发表于 2024-8-10 19:42 | 显示全部楼层
互斥锁适用于多任务并发执行的场景,但也需要考虑其带来的额外开销。
loutin 发表于 2024-8-10 21:49 | 显示全部楼层
在访问共享资源之前,任务必须尝试获取互斥锁。如果互斥锁已被其他任务持有,则当前任务将等待,直到互斥锁变为可用。
晓伍 发表于 2024-8-11 10:05 | 显示全部楼层
可以单纯的使用一个变量来达到目的吗
八层楼 发表于 2024-8-11 17:11 | 显示全部楼层
每个对象都对应于一个可称为" 互斥锁" 的标记,这个标记用来保证在任一时刻,只能有一个线程访问该对象
cashrwood 发表于 2024-8-11 21:25 | 显示全部楼层
使用互斥锁(Mutex)是一种常见的同步机制,用于保护共享资源不被多个任务同时访问,从而避免竞态条件(Race Condition)和数据不一致的问题。
观海 发表于 2024-8-12 08:18 | 显示全部楼层
有两种方法创建互斥锁,静态方式和动态方式
guanjiaer 发表于 2024-8-12 13:41 | 显示全部楼层
互斥锁的属性在创建锁的时候指定,在LinuxThreads实现中仅有一个锁类型属性,不同的锁类型在试图对一个已经被锁定的互斥锁加锁时表现不同
houjiakai 发表于 2024-8-13 05:27 | 显示全部楼层
在没有硬件支持的情况下,可以通过软件算法(如自旋锁)来尝试获取锁,但这种方法可能会导致优先级反转或死锁等问题,并且会消耗CPU资源。
adolphcocker 发表于 2024-8-18 22:43 | 显示全部楼层
互斥锁的实现可能依赖于特定的硬件特性或操作系统提供的同步原语。
janewood 发表于 2024-8-19 16:14 | 显示全部楼层
在单片机中使用互斥锁来保护共享资源可以有效地避免资源竞争和数据不一致的问题。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部
快速回复 在线客服 返回列表 返回顶部