如需使用自定义main文件,只需要在test/CMakeLists.txt中添加a.cpp文件即可
make build && cd build
cmake ..
make
./a.out如果投入实际生产使用,迁移/include 与/src文件即可,同样使用cmke编译使用
- 使用任务队列存储任务,使用多线程工作函数获取并执行任务
- 支持任意参数,任意类型的统一任务提交函数,使用std::future获取异步任务结果
- 实现对线程池基本状态管理,获取工作线程与任务队列状态,以及执行任务的状态和结果统计(超时,失败,正常完成等)。
- 实现对线程池的基本控制功能
- 支持暂停和恢复线程池以平衡系统负载
- 支持动态调整线程池大小
- 支持对任务队列的清空和任务等待机制
- 实现优先级队列,添加线程池性能监控
- 使用优先级队列管理任务,支持重要任务优先执行
- 对任务添加描述和任务ID,跟踪任务状态。添加性能监控结构体,记录和统计线程池各种性能数据。
- 实现简单的日志系统,支持多种级别日志和输出方式。同时使用日志记录线程池活动和状态
- 实现高级控制功能
- 添加任务取消机制,取消还未执行的任务;对任务执行时间进行监控,支持对超时任务的异常处理
- 使用任务ID确保任务唯一性,避免执行重复任务
- 支持批量提交大量相同任务