基于 C++ 11 实现线程池
Go to file
2023-06-12 17:41:12 +08:00
main.cpp first commit 2023-06-12 17:41:12 +08:00
README.md first commit 2023-06-12 17:41:12 +08:00
ThreadPool.h first commit 2023-06-12 17:41:12 +08:00

基于C++11 实现线程池

项目描述:

  1. 基于可变参模板编程和引用折叠原理实现线程池submitTask接口支持任意任务函数和任意参数的传递
  2. 使用future类型定制submitTask提交任务的返回值
  3. 使用map和queue容器管理线程对象和任务
  4. 基于条件变量condition_variable和互斥锁mutex实现任务提交线程和任务执行线程间的通信机制
  5. 支持fixed和cached模式的线程池定制。

使用示例:

#include <iostream>
#include <future>
#include "ThreadPool.h" // 引入头文件

using namespace std;

int sum1(int a, int b) {
    return a + b;
}

int main() {
    ThreadPool pool; // 定义线程池对象
    pool.start(); // 启动线程池
    future<int> res = pool.submitTask(sum1, 10, 20); // 提交异步任务

    cout << res.get() << endl; // 打印结果

    return 0;
}

更多进阶用法详见头文件中的注释说明。