前一小节介绍的使用全局数据进行通信,可以看到使用这种方法看起来比较简单,但实际并不简单。
而如果使用邮箱/消息队列,能够免去自行解决在使用全局数据进行通信的一些问题。
主要内容
在前面学习使用全局数据进行通信时,我们知道了有如下几个问题需要自行解决。
- 全局数据共享时的保护
- 多次写入数据时的数据缓存
- 数据读写时的读写同步
而如果使用邮箱,以上问题都可以得到解决,不需要自行再实现,
如上图所示,
- 邮箱内部实现了一个FIFO队列,缓存多次写入的数据
- 在往FIFO队列中读写时,其内部采用了一保护机制
- 内部等待队列用于解决通信时任务间的同步问题
重点难点
注意事项
在最后章节 综合实例中,我们还会看到用邮箱进行通信的更为复杂的案例。
在这里,请先学习怎样使用邮箱实现任务之间的基本通信。