boost::lockfree::spsc_queue 用法

1.声明方式

boost::lockfree::spsc_queue<WaveCycle, boost::lockfree::capacity<1024>> spsc_queue;

其中 WaveCycle 是希望保存的类型 boost::lockfree::capacity<1024> 是队列的缓冲区大小

2.常用方法

2.1 push方法

// 将数据保存到队列中 
// 返回一个bool值 表示是否插入成功
ClassName element;
bool ans = spsc_queue.push(element);

注意: 一般返回false 是因为当前队列中元素超过定义时所给定的大小

2.2 pop方法

// 含有参数的pop方法,在pop对象时会将内容保存到传入的对象中,在进行删除
// 返回一个bool值,表示是否删除成功
ClassName element;
bool ans = spsc_queue.pop(element);

// 也可以直接删除
bool ans = spsc_queue.pop();

3. 元素数量

// 查看当前可读取的元素数量
size_t read_available=spsc_queue.read_available();

// 查看当前可存入的元素数量
size_t write_available=spsc_queue.write_available();

 

posted @ 2025-04-08 13:28  BlackSnow  阅读(273)  评论(0)    收藏  举报