Skip to content
QY Li edited this page Apr 1, 2024 · 5 revisions

欢迎来到ThreadPool的Wiki主页面

这是一个可以方便的创建线程池,并且可以方便的添加任意函数,同时还可以对所添加的任务进行方便的监控。

使用

可以参考 example.cpp 文件所写,以下为创建和使用步骤:

  1. 创建线程池Pool实体,默认线程池线程个数为4个;
ThreadPool::Pool pool([线程数量]);
  1. 创建任务 Task 实体,用于接收任务状态以及可能的返回值;
std::shared_ptr<ThreadPool::Task<[类型]>> result;
  1. 添加任务到线程池;
result = pool.AddTask([函数指针], [参数1]...);
  1. 获取任务状态;
result->GetTaskStatus();
  1. 当任务完成时,可以获取返回值或 void,若未完成,则阻塞;
result->GetResult();
  1. 当线程池作用域结束时,将被销毁。

额外功能

  1. 可以调用 pool.WaitAll() 等待所有任务完成;
  2. 可以调用 ThreadPool::Pool::GetPool() 获取线程池实体。

Clone this wiki locally