本帖最后由 dehby1024 于 2025-7-24 15:44 编辑
workspace 是基于 C++11 的轻量级异步执行框架,支持:通用任务异步执行、优先级任务调度、自适应动态线程池、高效静态线程池、异常处理机制等。
项目在原作者 Lwhyz/workspace 的基础上进行增强与重构,保持核心架构稳定的同时引入了诸多优化与新特性,包含了性能优化、接口重构、新的模块、丑陋的高版本语法模拟。
✨ 核心特性
- ⚙️ Header-only:轻量设计,仅需引入头文件即可使用。
- 🚀 高并发性能:支持异步顺序执行,极大提高多任务并发效率。
- 🔧 灵活可定制:支持多种任务类型、动态线程调整、线程池策略灵活组合。
- 🛠️ 稳定性强:封装
function_ 优化小任务性能,内置异步异常处理机制。
- 🌐 良好兼容性:纯 C++11 实现,跨平台支持,兼容 C++11 及以上标准。
📌 使用说明
说实话我有点懒,连GitHub的 readme都没更,就没写了。实际上接口是很简单的,仅头库稍微看一下你就会了,具体可以参考原作者的例子(欢迎有空的大佬替我加入一些使用方法和文档整理
🧬衍生增强
- VS2015 兼容性增强:修复模板推导、构造顺序等兼容性问题。
- worker线程残留修复:解决 Windows 下 worker 线程因异常退出未正常析构的问题(std::thread太垃了)。
- 增加
dynbranch 模块,该模块是workbranch 与supervisor 轻量包装,上手就可使用的动态线程池类,大部分的接口都是模板转发语法,简洁清晰。
- 重写
supervisor 模块,解耦 tick 回调与线程检查频率,加入了更合理的线程增长/收缩策略(偏离原设计但更实用)
- 重构
workbranch 模块,让workbranch 更专注于静态线程池的职责,增加合并了许多任务提交接口,不在局限于无参数的方法
💬 致谢
感谢原作者 Lwhyz 的项目初稿及设计理念。我们在其基础上做出了更大胆的探索和扩展,旨在构建更高效、灵活的任务调度模型。
📎 链接
|