gpt4 book ai didi

linux - 在 linux 中使用 posix 消息队列的单个发送者和多个接收者进程

转载 作者:IT王子 更新时间:2023-10-29 00:20:09 28 4
gpt4 key购买 nike

有没有什么方法可以让一个写入进程在使用mq_send() 将消息发送到消息队列后,多个读取进程可以使用mq_receive() 读取消息。我预计 1 次写入 mq 和 1 次从 mq 读取,消息丢失。

所以我只想知道我的理解是否有误。有什么方法可以让单个写入器和多个读取器进程可以使用 posix 消息队列进行通信。

最佳答案

是的,你的理解是正确的。您无法使用 POSIX 消息队列可靠地执行此操作。如果你想将相同的消息可靠地传递给不同的线程/进程,你应该为每个读者使用不同的队列。

如果切换到 SYSV 消息队列,则可以执行此操作。 Msgsnd()并且 msgrcv() 可以在一些商定的协议(protocol)中操作消息的消息类型字段。例如写入进程将消息的消息类型作为读取进程的PID;并且阅读器进程将请求只读取该消息类型的消息。请注意,这仍然需要编写器为每个读取器进程编写一条消息。

关于linux - 在 linux 中使用 posix 消息队列的单个发送者和多个接收者进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9930619/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com