1.共享內存前端
雙向鏈表異步
環形緩衝socket
2.互斥ide
中斷鎖:做用域僅限於中斷內部。函數
優先級鎖:共享內存中,低優先級的任務不容許被打斷,優先級鎖就被使用。弊端:會徹底禁止任務的調度。指針
3.信號量(一種指向semaphore結構的指針)blog
SEM_EVENTSEND_ERR_NOTIFY,釋放信號量出錯返回錯誤;SEM_DELETE_SAFE模式避免擁有信號量的任務被刪除;SEM_INVERSION_SAFE避免系統出現優先級反轉現象。
隊列
SEM_ID semId;//聲明信號量ip
semId = semXCreate(SEM_Q_PRIORITY,SEM_EMPTY);建立信號量內存
1)二值信號量
速度最快,只有惟一的任務能夠獲取,一個任務釋放,一個任務才能獲取
2)互斥信號量
特殊二值信號量,只有擁有信號量的任務,才能使用semGIve釋放信號量;二值信號量和計數信號量,全部的任務都能釋放信號量;二值信號量被釋放以前只能有一個任務使用semTake獲取信號量;計數信號量被釋放前能夠有多個任務獲取信號量,上限是計數值;在互斥信號量中,也只有一個任務獲取信號量,可是容許同一個任務聯繫屢次獲取中一個信號量,固然獲取多少次就釋放多少次;二進制信號量和計數信號量均指出semFlush操做,用於向全部等待信號量的任務釋放信號量,使他們進入就緒態,信號量自己不變,可是,互斥信號量不支持semFlush。
3)計數信號量
和二值信號量相似,可是一個信號量能夠被多個任務後去知道計數的限制。
4.消息隊列
建立一個隊列,一個任務發送,一個任務接收,隊列有大小,經過建立的隊列返回的句柄來發送和接收消息。
msgQCreate建立消息隊列,屬性:先進先出MSG_Q_FIFO、消息優先級MSG_Q_PRIORITY、發送時間通知MSG_Q_EVENTSEND_ERR_NOTIFY,前兩個能夠和第三個屬性組合。返回值就是隊列句柄,也就是發送和接收函數操做隊列的參數。
msgQsend向隊列中發送消息,緊急程度參數:普通消息MSG_PRI_NORMAL和緊急消息MSG_PRI_URGENT。緊急就是將消息放到前端。
接收使用WAIT_FOREVER做爲超時參數,則消息隊列引發任務阻塞,知道隊列中有消息。
5.管道
支持select機制能夠用於異步通訊、支持全雙工
status = pipeDevCreate("/pipe/pipe0",Max_MsgNo,Max_MsgLen);
經過,open(),read(),write(),ioctl()來訪問管道。
6.socket
和Linux相似,以前已總結過
7.信號