消息队列和邮箱之间的区别

Gin*_*cob 3 operating-system rtos message-queue

在操作系统中,消息队列和邮箱之间有什么区别.

kkr*_*mbo 8

我怀疑没有普遍接受的定义消息队列与邮箱的对应关系.每个RTOS可能使用不同的术语和实现细节,因此您必须单独查看每个RTOS.

一般来说,一些常见的差异包括:

  • 通过队列/邮箱发送的邮件大小是固定的还是邮件大小可能会有所不同?
  • 队列/邮箱是否包含对邮件或邮件副本的引用?
  • 队列/邮箱可以保存一条消息,多条消息或无限制的消息吗?


Cli*_*ord 5

一般来说,队列在计算中具有非常精确的含义,作为具有先进先出(FIFO)访问语义的容器数据结构。特别是在 RTOS 队列中,对队列的访问将是线程安全的并且具有阻塞语义。

另一方面,邮箱没有普遍接受的特定语义,并且我见过该术语用来指代非常不同的 RTOS IPC 机制。在某些情况下,实际上存在队列,但如果 R​​TOS 也支持 IPC 队列,则邮箱将具有某种不同的语义 - 通常与内存管理有关。在其他情况下,邮箱本质上可能是长度为1的队列——即它具有队列的阻塞和IPC能力,但没有缓冲。这种机制允许进程之间的同步通信。