我正在编写一个消息队列,旨在通过套接字进行操作,出于各种原因,我希望队列内存存在于用户空间中,并有一个线程将队列排入各自的套接字。
消息将是内存的小块(可能在 4 到 4K 字节之间),所以我认为避免使用 malloc() 内存是避免碎片的必要条件。
操作模式是用户调用类似 send(msg) 的东西,然后将消息复制到队列内存中,并在方便的时间通过套接字发送。
我的问题是,是否有一种“好”的方法可以将可变大小的数据块存储在 std::queue 或 std::vector 之类的东西中,或者我是否必须走一条将内存池放在一起并处理我的自己配置出来的那个?