首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >V- LIFO方法

V- LIFO方法
EN

Stack Overflow用户
提问于 2017-06-08 08:43:01
回答 2查看 182关注 0票数 2

我使用System来管理消息队列。我成功地制作了一个工作原型,一切正常工作,但是我希望有一个LIFO队列,而不是FIFO (预期最后发送的msgsnd消息是第一次读取msgget)。

这有可能吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-06-08 10:25:23

是的,如果您管理正确的消息类型。msgrcv手册指定:

参数msgtyp指定请求的消息类型如下:

  • 如果msgtyp为0,则接收队列上的第一条消息。
  • 如果msgtyp大于0,则接收msgtyp类型的第一条消息。
  • 如果msgtyp小于0,则接收小于或等于msgtyp绝对值的最低类型的第一条消息。

然后,如果您使用严格减少的msgtyp发送消息,那么带有msgtyp的提取就等于LONG_MIN,那么总是会给出最后发送的消息。在这种情况下,msgtyp起着优先级的作用,1是最大的。

票数 2
EN

Stack Overflow用户

发布于 2017-06-08 12:41:32

我认为这是不可能的。

“队列”一词的意思是FIFO。见维基百科:

队列(抽象数据类型) 在计算机科学中,队列(/ˈkjuː/ KYEW)是一种特殊的抽象数据类型或集合,其中集合中的实体保持有序,集合上的主要(或仅)操作是将实体添加到后面的终端位置(称为enqueue ),并将实体从前端终端位置(称为去队列)中移除。这使得队列成为先进先出(FIFO)数据结构.

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44430787

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档