【问题标题】:which is better POSIX Message Queue or PIPES for producer consumer problem对于生产者消费者问题,哪个是更好的 POSIX 消息队列或 PIPES
【发布时间】:2026-01-09 04:20:05
【问题描述】:

我有一个生产者线程和一个消费者线程,其中生产者的运行速度比消费者快 我需要从生产者那里传输数据并在消费者上处理它,生产者每秒会给出一个包含 1000 个元素的数组,消费者应该等到它有 10 组数组并处理它(消费者每 10 秒运行一次)

我可以看到我们可以修改 POSIX 消息队列来输入一个包含 1000 个元素的双精度数组

传输真实数据、POXIS 消息队列或 PIPES/Named PIPES 哪个更好?

这也可以用 PIPES 实现吗?

【问题讨论】:

    标签: queue pipe pthreads named-pipes


    【解决方案1】:

    我有一个生产者线程和一个消费者线程

    当您有一个单个进程时,POSIX 消息队列和管道都不是合适的解决方案(两者都用于进程间通信)。

    虽然都可以使用,但都不应该使用,因为这种解决方案的性能将比适当的解决方案低100到1000倍,即使用适当的解决方案数据结构(例如 std::deque 或其 C 等价物)。

    【讨论】: