首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在msgrcv()中同时使用MSG_EXCEPT排除多条消息

在msgrcv()中同时使用MSG_EXCEPT排除多条消息
EN

Stack Overflow用户
提问于 2022-11-30 07:42:52
回答 1查看 16关注 0票数 0

我使用msgrcv()从队列中读取消息。有多个线程,每个线程从一个公共队列处理自己的消息类型。假设有3个线程分别处理消息类型A、B和C,如下所示:

代码语言:javascript
复制
thread1()
{
    msg_t msg;
    while(1)
    {
        msgrcv(qid, msg, sizeof(msg), A, 0)
        .
        .
    }
}
.
.
thread2()
{
    msg_t msg;
    while(1)
    {
        msgrcv(qid, msg, sizeof(msg), B, 0)
        .
        .
    }
}
.
.
thread3()
{
    msg_t msg;
    while(1)
    {
        msgrcv(qid, msg, sizeof(msg), C, 0)
        .
        .
    }
}

`

现在,我想要第四个线程,它可以接收除这三个之外的所有消息。可以使用MSG_EXCEPT标志来实现吗?

谢谢。

我不知道如何使用“MSG_EXCEPT”标志一次排除多个消息类型。

EN

回答 1

Stack Overflow用户

发布于 2022-11-30 15:17:37

可以用MSG_EXCEPT标志来实现吗?

不,它不能。相反,如果您可以安排A、B和C大于所有其他已使用的消息类型,则可以通过指定小于A、B和C的msgtyp的负数来达到目标。

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

https://stackoverflow.com/questions/74624322

复制
相关文章

相似问题

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