前面几节课时介绍的是怎样进行任务间的单向同步,本节课时介绍如何使用模块进行双向同步。
本节课时只是拿信号量为例,介绍基本的方法。也可使用邮箱、事件标志组等完成类似的功能。
主要内容
在学习过前面使用信号量进行单向同步之后,如果在此基础上使用两个信号量,则可以完成任务间的双向同步。
课程中列举了一个简单的案例,任务A通知任务B工作,任务B完成之后再向任务A报告结果。如下图:
上述过程,通过代码实现如下,执行流程见箭头标注。
重点难点
注意事项
如果需要在同步时附带数据,可使用邮箱等模块。
也可使用事件标志组进行多事件的双向同步。