一、訊息佇列概念
——用於執行緒間通訊的資料結構
當佇列中的訊息是空時,掛起讀取執行緒,使用者還可以指定掛起的執行緒時間 timeout;
當佇列中有新訊息時,掛起的讀取執行緒被喚醒並處理新訊息,訊息佇列是一種非同步的通訊方式。
二、訊息佇列的運作機制
要點:三、訊息佇列的阻塞機制
阻塞機制——目的:為了保護每個執行緒對訊息佇列能正常完成讀寫操作,而不受後來的執行緒干擾的過程,
實現:rt-thread 已經做好了,直接使用。每個對訊息佇列讀寫的函式,都有這種阻塞機制。
說明:傳送訊息並不帶有阻塞機制的,因為傳送訊息的環境可能是在中斷中,不允許有阻塞的情況。
四、訊息佇列應用場景
訊息佇列可應用於傳送不定長訊息的場合,包括執行緒與執行緒間的訊息交換,以及在中斷服務函式中給執行緒傳送訊息(中斷服務例程不可能接收訊息)。
五、訊息佇列控制塊
——重要的核心控制塊
1
struct rt_messagequeue
;15 typedef struct rt_messagequeue *rt_mq_t;
(6):煉表頭指標,指向即將讀取資料的節點。(7):鍊錶尾指標,指向允許寫入資料的節點 RT Thread的訊息佇列
1.訊息佇列控制塊的組成 結構體 通過下圖可以很容易發現訊息佇列有8個元素.msg pool msg size max msgs entry msg queue head msg queue tail msg queue free和.parent,其中.msg pool為訊息佇列的起始位址 msg ...
MQ訊息佇列應用
很榮幸,原來一直聽說的訊息佇列終於在前段時間用到了自己的專案中。為什麼會用到訊息佇列?毫無疑問,當然是傳輸訊息。這裡訊息一般是一串字串,當然,訊息的含義很多,可以是 hello world 可以是 你吃飯了嗎?可以是一串正式的xml報文。也可以是乙個txt檔案或者xml檔案 在用active mq的...
訊息佇列常見的 5 個應用場景
一 簡介 訊息中介軟體 message queue middleware,簡稱mq 又稱為訊息佇列,是指利用高效可靠的訊息傳遞機制進行與平台無關的資料交流,並基於資料通訊來進行分布式系統的構建。是分布式系統中重要的元件,主要解決應用耦合,非同步訊息,流量削鋒等問題。實現高效能 高可用 可伸縮和最終一...