|
Console Library 8.0.0
A header-only library that makes C++ simple
|
基于自旋的高性能 FIFO 队列,支持多生产者/多消费者并发。 More...
#include <queue.h>
Classes | |
| struct | Node |
Public Member Functions | |
| LFQueue () | |
| 默认构造函数,使用默认分配器初始化队列。 | |
| LFQueue (const Alloc &alloc) | |
| 使用指定分配器初始化队列。 | |
| LFQueue (Alloc &&alloc) | |
| 使用移动分配器初始化队列。 | |
| ~LFQueue () | |
| 析构函数,销毁队列中的所有节点。 | |
| void | push (const T &data) |
| 将数据推送到队列中。 | |
| void | push (T &&data) |
| 将数据推送到队列中。 | |
| template<class Iterator> | |
| void | push (Iterator begin, size_t count) |
| 将大批数据推送到队列中。 | |
| template<class Iterator> | |
| void | push (Iterator begin, Iterator end) |
| 将大批数据推送到队列中。 | |
| bool | pop (T &output) |
| 从队列中弹出数据。 | |
| std::unique_ptr< T > | pop () |
| 从队列中弹出数据,并返回一个独占所有权的 std::unique_ptr。 | |
| template<class Iterator> | |
| size_t | pop (Iterator output, size_t count) |
| 从队列中弹出数据大批数据,写入输出迭代器。 | |
| template<class Iterator> | |
| size_t | pop (Iterator begin, Iterator end) |
| 从队列中弹出数据大批数据,写入输出迭代器。 | |
| std::vector< T > | pop (size_t count) |
| 从队列中弹出数据大批数据,返回包含弹出结果的 vector。 | |
Private Types | |
| using | NodeAlloc |
| 节点分配器类型。 | |
| using | NodeTraits = std::allocator_traits<NodeAlloc> |
| 节点分配器的特征类型。 | |
Private Member Functions | |
| Alloc & | get_alloc () |
| 获取分配器的引用。 | |
| Node * | create_node (const T &data) |
| 创建一个新的节点。 | |
| void | destroy_node (Node *node) |
| 销毁节点。 | |
Private Attributes | |
| std::atomic< Node * > | head_ |
| 指向队列头部的原子指针 | |
| std::atomic< Node * > | tail_ |
| 指向队列尾部的原子指针 | |
基于自旋的高性能 FIFO 队列,支持多生产者/多消费者并发。
| T | 队列中元素的类型。 |
| Alloc | 分配器类型,默认为 std::allocator<T>。 |
|
private |
节点分配器类型。
|
private |
节点分配器的特征类型。
|
inline |
默认构造函数,使用默认分配器初始化队列。
|
inline |
使用指定分配器初始化队列。
| alloc | 分配器对象。 |
|
inline |
使用移动分配器初始化队列。
| alloc | 分配器对象。 |
|
inline |
析构函数,销毁队列中的所有节点。
|
inlineprivate |
创建一个新的节点。
|
inlineprivate |
销毁节点。
|
inlineprivate |
获取分配器的引用。
|
inline |
从队列中弹出数据,并返回一个独占所有权的 std::unique_ptr。
|
inline |
从队列中弹出数据大批数据,写入输出迭代器。
| begin | 输出迭代器的起始位置,用于写入弹出的数据。 |
| end | 输出迭代器的结束位置。 |
|
inline |
从队列中弹出数据大批数据,写入输出迭代器。
| output | 输出迭代器,用于写入弹出的数据。 |
| count | 要弹出的数据数量。 |
|
inline |
从队列中弹出数据大批数据,返回包含弹出结果的 vector。
| count | 要弹出的数据数量。 |
|
inline |
从队列中弹出数据。
| output | 弹出的数据将存储在此处。 |
|
inline |
将数据推送到队列中。
| data | 要推送的数据。 |
|
inline |
|
inline |
将大批数据推送到队列中。
| begin | 数据迭代器的起始位置。 |
| count | 要推送的数据数量。 |
|
inline |
将数据推送到队列中。
| data | 要推送的数据。 |
|
private |
指向队列头部的原子指针
|
private |
指向队列尾部的原子指针