Skip to content

jjkingy/ThreadPool

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

How to start

如需使用自定义main文件,只需要在test/CMakeLists.txt中添加a.cpp文件即可

make build && cd build
cmake ..
make
./a.out

如果投入实际生产使用,迁移/include 与/src文件即可,同样使用cmke编译使用

线程池功能介绍

基本功能

  • 使用任务队列存储任务,使用多线程工作函数获取并执行任务
  • 支持任意参数,任意类型的统一任务提交函数,使用std::future获取异步任务结果
  • 实现对线程池基本状态管理,获取工作线程与任务队列状态,以及执行任务的状态和结果统计(超时,失败,正常完成等)。

高级功能

  • 实现对线程池的基本控制功能
    • 支持暂停和恢复线程池以平衡系统负载
    • 支持动态调整线程池大小
    • 支持对任务队列的清空和任务等待机制
  • 实现优先级队列,添加线程池性能监控
    • 使用优先级队列管理任务,支持重要任务优先执行
    • 对任务添加描述和任务ID,跟踪任务状态。添加性能监控结构体,记录和统计线程池各种性能数据。
    • 实现简单的日志系统,支持多种级别日志和输出方式。同时使用日志记录线程池活动和状态
  • 实现高级控制功能
    • 添加任务取消机制,取消还未执行的任务;对任务执行时间进行监控,支持对超时任务的异常处理
    • 使用任务ID确保任务唯一性,避免执行重复任务
    • 支持批量提交大量相同任务

About

基于c++11/14/17新特性实现的高性能生产级别的线程池

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors