2016-04-26 192 views
2

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

+2

Err..call'msgsend' and'msgrecv' for each message for each message。这个答案太明显了吗?还是你问一些更微妙的东西? – kaylum

+0

这是不是在名称?这是一个消息**队列** - 所以你可以发送几条消息,你会按照你发给他们的相同顺序接收它们。 – immibis

+0

是的,我知道人们会侮辱。谢谢 – jynx678

回答

0

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

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