原理 RT Thread內部IPC之郵箱

2021-09-08 16:51:00 字數 465 閱讀 6827

郵箱,在生活中可以用來傳遞資料、資訊,在作業系統中,任務間的通訊也有郵箱,此郵箱與生活用的郵箱有異曲同工之處,都可以用來傳遞資訊,不同的便是使用環境不同。

rt-thread的郵箱,每一封郵箱只能容納4個位元組內容(針對32位處理器,指標大小即4個位元組,剛好能容納乙個指標),當傳送的內容超過4個位元組時,可傳遞內容的位址。

郵箱的特性:

1,建立時,執行緒阻塞排序均可以選擇優先順序 or fifo方式

2,執行緒阻塞時間均可以選擇直接返回、掛起一段時間、永久等待。

3,可設定郵箱最大接收數量。(訊號量、互斥量、事件不可設定最大值)

郵箱的傳送與接收機制:

傳送郵箱時,如果當前郵箱已經滿,執行緒根據阻塞時間直接返回或掛起一段時間、永久等待。阻塞期間會進行執行緒排程,其他執行緒會執行。

接收郵件時,如果當前郵箱裡面沒有郵件,執行緒根據阻塞時間直接返回或掛起一段時間、永久等待。阻塞期間會進行執行緒排程,其他執行緒會執行。

RT Thread作業系統之 IPC

執行緒的排程,都是建立在中斷的基礎上的,當我們關閉中斷,系統將不能進行排程了,還有我們可以禁止排程器排程來保護臨界資源。除了這些我們還用執行緒間通訊的方式保護執行緒間的同步。ipc機制 inter process communication 意思是程序間通訊。rt thread中ipc物件有 訊號量...

libvirt內部原理

1 什麼是libvirt,它的功能有哪些?libvirt 是管理虛擬機器和其他虛擬化功能,比如儲存管理,網路管理的軟體集合。這 些軟體包括乙個api 庫 乙個daemon libvirtd 和乙個命令列工具 virsh the goal of libvirt to provide a common ...

AsyncTask內部原理

asynctask 是乙個封裝了 threadpoolexecutor 和 handler 機制的抽象類,其作用是方便開發者進行多個非同步任務時無需手動在每個執行緒中都採用 handler 機制來通知 ui 執行緒進行操作,從而簡化了多個非同步任務與 ui 執行緒的通訊的情況.我們先留下幾個問題,在...