184_FreeRTOS使用事件组实现同步

         这个同步可以理解为多个状态同时满足,接下来分析下官方的例子。

184_FreeRTOS使用事件组实现同步

         上面的机制可以理解为,等待三个事件全都达到一起触发一个动作,也就是退出。相当于,三个任务各自等在自己的跑道上,等到了最后50m之后再一起来一个第二次冲刺。

         运行效果:

184_FreeRTOS使用事件组实现同步

         我觉得可以做另一个测试,可以更好看出这个效果,那就是改掉平等的优先级。修改如下:

184_FreeRTOS使用事件组实现同步

         运行效果:

184_FreeRTOS使用事件组实现同步

         我修改过的这个例子更能够看出“最后50m冲刺”的效果,由于本身三者的实力(优先级)不同,最终冲刺的时候谁的实力强谁先到达终点。因此,最终的打印结果中,总是有一个3,2,1的顺序。