互斥信号量是一个特殊的二值信号量类型,用来控制访问多个任务之间共享的资源。允许使用互斥需要在FreeRTOSConfig.h中配置configUSE_MUTEXES为1。
在一个互斥访问的场景,互斥信号量可以被认为是一个令牌,只有拥有这个令牌的任务才能访问某一资源。因此任务在访问这一资源时,要先取得令牌,才被允许访问资源。而在访问资源完毕后,要将令牌放回到原来的位置,供其他任务或自己获取。
这时候我们可能会有疑惑,这个功能不是与之前介绍的二值信号量相类似吗,这里我要提两点不同..
- 互斥信号量在使用完毕后,必须要返还
- 而用于同步的二值信号量在使用完毕后不用再放回,只需等待下次事件触发
+++++++++++++++++++++++++++++++