2015-10-27 39 views

回答

5

我懷疑沒有普遍接受的定義是什麼使消息隊列與郵箱相比。每個RTOS可能會使用不同的術語和實現細節,因此您必須單獨查看每個RTOS。

一般來說一些常見的不同之處包括:

  • 是通過隊列/郵箱發送的消息的大小固定的或可在消息大小變化?
  • 隊列/郵箱是否保存對郵件或郵件副本的引用?
  • 隊列/郵箱是否可以保存一條消息,多條消息或無限消息?
2

一般甲隊列具有計算與先入先出(FIFO)訪問語義的容器數據結構非常精確的含義。具體來說,在RTOS隊列中,對隊列的訪問將是線程安全的並且具有阻塞語義。

A 郵箱另一方面沒有普遍接受的具體語義,我已經看到這個術語用來指代非常不同的RTOS IPC機制。在某些情況下,實際上存在隊列,但是如果RTOS也支持IPC隊列,則郵箱將具有某種不同的語義 - 通常就內存管理而言。在其他情況下,郵箱本質上可以是長度爲1的隊列 - 即它具有隊列的阻塞和IPC能力,但不具有緩衝。這種機制允許進程之間的同步通信。