吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 331|回复: 6
上一主题 下一主题
收起左侧

[C&C++ 转载] workspace - C++11 轻量级异步执行、动态线程池框架

[复制链接]
跳转到指定楼层
楼主
DeHby 发表于 2026-4-13 14:00 回帖奖励
本帖最后由 DeHby 于 2026-4-14 10:05 编辑

workspace

workspace 是基于 C++11 的轻量级异步执行框架,支持:通用任务异步执行、优先级任务调度、自适应动态线程池、高效静态线程池、异常处理机制等。

项目在原作者 Lwhyz/workspace 的基础上进行增强与重构,保持核心架构稳定的同时引入了诸多优化与新特性,包含了性能优化、接口重构、新的模块、丑陋的高版本语法模拟。

✨ 核心特性

  • ⚙️ Header-only:轻量设计,仅需引入头文件即可使用。

  • 🚀 高并发性能:支持异步顺序执行,极大提高多任务并发效率。

  • 🔧 灵活可定制:支持多种任务类型、动态线程调整、线程池策略灵活组合。

  • 🛠️ 稳定性强:封装 function_ 优化小任务性能,内置异步异常处理机制。

  • 🌐 良好兼容性:纯 C++11 实现,跨平台支持,兼容 C++11 及以上标准。

📌 使用说明

#include <workspace/dynbranch.hpp>

int main()
{
    // 创建动态线程池 以CPU核心数 0.5倍 ~ 1倍作为大小区间动态调整
    wsp::details::dynbranch worker(wsp::details::cpu_multiple_tag, 0.5, 1);

    // 投递5个任务
    for (int i = 0; i < 5; i++) {
        worker.submit([i](int timeout) {
            std::this_thread::sleep_for(std::chrono::milliseconds(timeout));
            std::printf("taskID:%d\n", i);

        }, 100 * i);
    }

    // 等待所有任务
    worker.wait_tasks();

    // 创建一个future任务
    auto task_future = worker.submit_future([](int a, int b) {
        return a + b;
    }, 1, 2);

    auto result = task_future.get();
    std::printf("计算结果:%d\n", result);
    return 0;
}

🧬衍生增强

  • VS2015 兼容性增强:修复模板推导、构造顺序等兼容性问题。

  • worker线程残留修复:解决 Windows 下 worker 线程因异常退出未正常析构的问题(std::thread太垃了)。

  • 增加dynbranch模块,该模块是workbranchsupervisor轻量包装,上手就可使用的动态线程池类,大部分的接口都是模板转发语法,简洁清晰。

  • 重写supervisor模块,解耦 tick 回调与线程检查频率,加入了更合理的线程增长/收缩策略(偏离原设计但更实用)

  • 重构workbranch模块,让workbranch更专注于静态线程池的职责,增加合并了许多任务提交接口,不在局限于无参数的方法

💬 致谢

感谢原作者 Lwhyz 的项目初稿及设计理念。我们在其基础上做出了更大胆的探索和扩展,旨在构建更高效、灵活的任务调度模型。

📎 链接


发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

沙发
苏紫方璇 发表于 2026-4-14 02:25
请在帖子中插入部分关键代码
本版块仅限分享编程技术和源码相关内容,发布帖子必须带上关键代码和具体功能介绍
3#
cppbugboy 发表于 2026-4-14 08:55
4#
 楼主| DeHby 发表于 2026-4-14 09:47 |楼主
苏紫方璇 发表于 2026-4-14 02:25
请在帖子中插入部分关键代码
本版块仅限分享编程技术和源码相关内容,发布帖子必须带上关键代码和具体功能 ...

好的稍后补充
5#
52175360newton 发表于 2026-4-14 09:51
接口重构也有吗?
6#
m_h 发表于 2026-4-14 10:21
  你还没发就被我 fork 了。
7#
 楼主| DeHby 发表于 2026-4-14 10:59 |楼主
m_h 发表于 2026-4-14 10:21
你还没发就被我 fork 了。

哈哈,我发的是我魔改版,他原版我用不惯
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - 52pojie.cn ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2026-4-17 09:05

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表