如何使提升::无锁::队列动态调整大小

How does one make a boost::lockfree::queue be dynamically resizing

本文关键字:调整 动态 无锁 何使提 队列      更新时间:2023-10-16

boost::lockfree::queue的文档提到,如果需要,推送可以分配更多空间。但是,我一生都无法弄清楚如何实例化这样的队列,也找不到它的例子。boost网站上的所有示例都是固定容量的。

这是我正在查看的文档:http://www.boost.org/doc/libs/1_54_0/doc/html/boost/lockfree/queue.html

默认值是队列的大小是可变的。这由typename ...Options模板参数控制。

此外,还有一个错误,即队列

需要静态设置的容量,即使队列的大小是可变的。这可以通过使用占用初始容量的构造函数来避免。

可变大小的队列可以实例化为:

boost::lockfree::queue<T> newQueue(0);
// or equivalently:
boost::lockfree::queue<T, boost::lockfree::fixed_sized<false> > newQueue(0);

固定大小的队列必须显式设置 fixed_sized 选项以true或提供具有boost::lockfree::capacity选项的大小。

请参阅链接到的文档开头附近的Policies部分。