1、用信號量進行行為同步時,只能提供同步的時刻信息,不能提供內容信息。若被控制方要求得到控制方的內容信息時,可以使用消息郵箱或消息隊列。
2、但由于消息郵箱里只能存放一條消息,所以使用消息郵箱進行任務的同步時,需要滿足一個條件:消息的產生速度總要慢于消息的消費速度,即被控制任務總是在等待消息,否則會導致消息丟失。
3、若遇到出現消息的產生速度可能快于消息的消費速度的情況時,則可以使用比消息郵箱更為強大的消息隊列,由于消息隊列可以存放多條消息,所以消息隊列能夠有效解決消息的臨時堆積問題。但消息隊列的使用仍然需滿足一個條件:消息的平均生產速率比消息的平均消費速率低,否則再長的消息隊列也會溢出。
?
信號量??????:可以通知接收方某個事件的發生,但無法傳遞具體事件內容,形象的說就像我們只撥通別人的手機而不與之通話
消息隊列???: 可以通知接收方某個事件的發生,但并告知接收方事件內容,形象的說就像我們既撥通別人的手機又與之通話
?
郵箱可以看這篇文章:https://blog.csdn.net/oyhb_1992/article/details/75270739
消息隊列可以看野火那本ucos的書,信號量就不需要過多解釋啦
http://blog.sina.com.cn/s/blog_98ee3a930100w9i3.html