代码之家  ›  专栏  ›  技术社区  ›  ttsiodras

UNIX消息队列维护消息的顺序吗?

  •  1
  • ttsiodras  · 技术社区  · 14 年前

        msgq_id = mq_open(  full_queue_name,
                            O_RDWR | O_CREAT,
                            S_IRWXU | S_IRWXG,
                            &msgq_attr);
        mq_send(msgq_id, ptrData1, len1, 0);
        mq_send(msgq_id, ptrData2, len2, 0);
        ...
    

        mqd_t open_res = mq_open(full_queue_name, O_RDONLY);
        ...
        mq_receive(...)
        mq_receive(...)
    

    ... 我能保证消息队列保持消息的顺序吗?

    2 回复  |  直到 14 年前
        1
  •  4
  •   Williham Totland    14 年前

    man mq_send

    msg\u prio参数是一个非负整数,用于指定此消息的优先级。消息按优先级降序放置在队列上, 具有相同优先级的较新邮件放在具有相同优先级的较旧邮件之后。

    所以是的,你有保证。

        2
  •  2
  •   vartec    14 年前

    推荐文章