我使用System来管理消息队列。我成功地制作了一个工作原型,一切正常工作,但是我希望有一个LIFO队列,而不是FIFO (预期最后发送的msgsnd消息是第一次读取msgget)。
这有可能吗?
发布于 2017-06-08 10:25:23
是的,如果您管理正确的消息类型。msgrcv手册指定:
参数msgtyp指定请求的消息类型如下:
然后,如果您使用严格减少的msgtyp发送消息,那么带有msgtyp的提取就等于LONG_MIN,那么总是会给出最后发送的消息。在这种情况下,msgtyp起着优先级的作用,1是最大的。
发布于 2017-06-08 12:41:32
我认为这是不可能的。
“队列”一词的意思是FIFO。见维基百科:
队列(抽象数据类型) 在计算机科学中,队列(/ˈkjuː/ KYEW)是一种特殊的抽象数据类型或集合,其中集合中的实体保持有序,集合上的主要(或仅)操作是将实体添加到后面的终端位置(称为enqueue ),并将实体从前端终端位置(称为去队列)中移除。这使得队列成为先进先出(FIFO)数据结构.
https://stackoverflow.com/questions/44430787
复制相似问题