STTNet
 全部  命名空间 文件 函数 变量 类型定义 枚举 枚举值 宏定义 
Public 成员函数 | 所有成员列表
stt::system::WorkerPool类 参考

固定大小的工作线程池 更多...

#include <sttnet.h>

Public 成员函数

 WorkerPool (size_t n)
 构造函数,创建指定数量的工作线程 更多...
 
 ~WorkerPool ()
 析构函数 更多...
 
void submit (Task task)
 向线程池提交一个任务 更多...
 
void stop ()
 停止线程池并等待所有线程退出 更多...
 

详细描述

固定大小的工作线程池

WorkerPool 内部维护一个任务队列和若干工作线程。 每个工作线程循环从队列中取出任务并执行。

特性

线程安全说明

使用示例

WorkerPool pool(4);
pool.submit([] {
// 执行任务
});
pool.stop();

构造及析构函数说明

stt::system::WorkerPool::WorkerPool ( size_t  n)
inlineexplicit

构造函数,创建指定数量的工作线程

参数
n工作线程数量

构造完成后,所有线程立即启动并进入等待状态。

stt::system::WorkerPool::~WorkerPool ( )
inline

析构函数

析构时会自动调用 stop(), 确保所有线程退出并被正确 join。

成员函数说明

void stt::system::WorkerPool::stop ( )
inline

停止线程池并等待所有线程退出

调用后:

  • 不应再提交新的任务
  • 已提交但未执行的任务会被执行完
  • 所有工作线程都会退出并 join

该函数可安全重复调用。

void stt::system::WorkerPool::submit ( Task  task)
inline

向线程池提交一个任务

参数
task可调用对象,函数签名为 void()

任务会被放入内部队列,并由某个工作线程异步执行。


该类的文档由以下文件生成: