消息队列中的多条消息

时间:2016-04-26 22:58:41

标签: c multithreading process message-queue

这可能是一个非常愚蠢的问题,但谷歌搜索并没有成功,所以这里。我正在编写一个程序,使用消息队列将一系列值发送到不同的进程。我做过研究,表明我使用msgsnd()在队列上存储消息,并使用msgrcv()来接收消息。我需要在队列中存储起始编号和结束编号。所以我的问题是我可以在这个队列中存储多个消息,如果是这样,我该如何存储它们并检索它们? TIA为您提供所有帮助。

1 个答案:

答案 0 :(得分:0)

queue的概念意味着您可以放入(msgsnd)内容,在队列中创建一条消息。要接收一条消息,您必须致电msgrcv。每次接收通常只返回一条消息,因此如果您发送n条消息,则必须收到n条消息。

队列通常被视为FIFO(先进先出),因此第一个msgsnd创建的消息将是msgrcv返回的第一条消息。 如果您通过网络(和/或群集)发送消息队列,则这有点弱。由于网络延迟/故障转移/重试等消息可能会出现故障,因此通常建议在其中构建包含所有必要信息的消息,以便针对这些情况正确处理。