观察lockfree队列的大小

时间:2014-12-19 22:46:01

标签: c++ multithreading boost

全部

我正在尝试使用boost库的无锁队列数据结构。

#include <boost/thread/thread.hpp>
#include <boost/lockfree/queue.hpp>

但是,我发现这些数据结构不支持获取这些数据包含的当前条目数的方法(http://www.boost.org/doc/libs/1_53_0/doc/html/boost/lockfree/queue.html)。

我想要的是类似于std :: queue :: size(http://en.cppreference.com/w/cpp/container/queue/size)的东西。

非常感谢您的帮助!

1 个答案:

答案 0 :(得分:3)

如果你只想跟踪高/低水印,请设置一个原子计数器,在你入队时增加,并在你出队时减少。

您可以定期对该计数器进行采样,以进行您可能需要的任何调整/统计分析。

队列本身并不提供此操作,因为您只需支付所需的费用。