2012-03-29 87 views

回答

7

是的,你的理解是正確的。 POSIX消息隊列無法可靠地執行此操作。如果您想要將相同的消息可靠地傳遞給不同的線程/進程,則應爲每個閱讀器使用不同的隊列。

如果切換到SYSV消息隊列,則可以執行此操作。 Msgsnd()和msgrcv()可以在一些商定的協議中操作消息的消息類型字段。例如,編寫器進程將使消息的消息類型成爲讀取器進程的PID;讀者進程將請求只讀取該消息類型的消息。請注意,這仍然需要作者爲每個閱讀器進程編寫消息。

相關問題