|
ngl_server 1.0
基于 Actor 模型的 C++ 服务器框架
|
单消费者工作队列。 More...
#include <tools_nwork.h>
Public Member Functions | |
| nwork (const std::function< void(T &)> &afun) | |
| 构造函数,启动工作线程。 | |
| ~nwork () | |
| 析构函数。 | |
| void | run (std::stop_token astop) |
| 工作线程主循环。 | |
| void | push_back (std::shared_ptr< T > &anode) |
| 向队列提交一个任务。 | |
Static Public Member Functions | |
| template<typename ... ARGS> | |
| static std::shared_ptr< T > | make_shared (ARGS &... args) |
| 创建任务对象的共享指针。 | |
单消费者工作队列。
内部维护一个任务队列和一个工作线程。外部通过push_back()提交任务, 工作线程在信号量驱动下批量取出并处理任务。
| T | 任务数据类型 |
|
inline |
构造函数,启动工作线程。
| afun | 任务处理回调函数,每个入队任务都会调用此函数 |
|
inline |
析构函数。
请求工作线程停止,发送信号量唤醒线程,并等待其完成。
|
inlinestatic |
创建任务对象的共享指针。
| ARGS | 构造参数类型 |
| args | 传递给T构造函数的参数 |
|
inline |
向队列提交一个任务。
| anode | 任务对象的共享指针 |
|
inline |
工作线程主循环。
| astop | 停止令牌,用于检测停止请求 |
等待信号量 → 批量交换队列 → 逐个处理任务 → 循环。