-
Notifications
You must be signed in to change notification settings - Fork 0
Home
QY Li edited this page Apr 1, 2024
·
5 revisions
这是一个可以方便的创建线程池,并且可以方便的添加任意函数,同时还可以对所添加的任务进行方便的监控。
可以参考 example.cpp 文件所写,以下为创建和使用步骤:
- 创建线程池
Pool实体,默认线程池线程个数为4个;
ThreadPool::Pool pool([线程数量]);- 创建任务
Task实体,用于接收任务状态以及可能的返回值;
std::shared_ptr<ThreadPool::Task<[类型]>> result;- 添加任务到线程池;
result = pool.AddTask([函数指针], [参数1]...);- 获取任务状态;
result->GetTaskStatus();- 当任务完成时,可以获取返回值或
void,若未完成,则阻塞;
result->GetResult();- 当线程池作用域结束时,将被销毁。
- 可以调用
pool.WaitAll()等待所有任务完成; - 可以调用
ThreadPool::Pool::GetPool()获取线程池实体。