簡體   English   中英

在 msgrcv() 中一次使用 MSG_EXCEPT 排除多條消息

[英]excluding multiple message using MSG_EXCEPT at once in msgrcv()

我正在使用 msgrcv() 從隊列中讀取消息。 有多個線程,每個線程處理來自公共隊列的自己的消息類型。 假設有 3 個線程分別處理消息類型 A、B 和 C,如下所示:`

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”標志一次排除多種消息類型。

可以使用 MSG_EXCEPT 標志來實現嗎?

不,它不能。 相反,如果您可以安排 A、B 和 C 大於所有其他使用的消息類型,則可以通過指定小於 A、B 和C的負數來實現目標。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM