【发布时间】:2011-06-25 13:19:51
【问题描述】:
在接收来自 POSIX 队列的消息时如何节省内存?
似乎在多进程/多线程环境中使用 POSIX 队列时,没有线程安全的方法可以将消息出列到小于 max_msgsize 的缓冲区中。
对于这个问题有任何标准解决方案吗?或者它甚至是一个问题?
我很清楚还有其他非常棒的库可以做到这一点,但我只想为不想处理依赖关系的用户提供一个完全标准的解决方案。
仅供参考,我正在尝试为每条消息排队数百兆字节,并拥有一个进程池,其中包含多个线程,每个线程都将消息出列以进行处理。
谢谢, 陈兹
【问题讨论】:
-
为什么不能只使用信号量来保护访问?也许我不太明白这个问题。
-
无法查询队列中下一条消息的大小,所以我必须分配一个等于消息允许的最大大小的缓冲区。
标签: c posix memory-management message-queue