前一小节介绍的使用全局数据进行通信,可以看到使用这种方法看起来比较简单,但实际并不简单。

而如果使用邮箱/消息队列,能够免去自行解决在使用全局数据进行通信的一些问题。

主要内容

在前面学习使用全局数据进行通信时,我们知道了有如下几个问题需要自行解决。

  • 全局数据共享时的保护
  • 多次写入数据时的数据缓存
  • 数据读写时的读写同步

而如果使用邮箱,以上问题都可以得到解决,不需要自行再实现,
利用邮箱实现数据通信 - 图1
如上图所示,

  • 邮箱内部实现了一个FIFO队列,缓存多次写入的数据
  • 在往FIFO队列中读写时,其内部采用了一保护机制
  • 内部等待队列用于解决通信时任务间的同步问题

所以,采用邮箱能更为容易地解决这些问题。

重点难点

注意事项

在最后章节 综合实例中,我们还会看到用邮箱进行通信的更为复杂的案例。
在这里,请先学习怎样使用邮箱实现任务之间的基本通信。

常见问题