V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
leohotfn
V2EX  ›  C

小巧的 C++线程池

  •  
  •   leohotfn · 2017-05-23 17:35:24 +08:00 · 2469 次点击
    这是一个创建于 2523 天前的主题,其中的信息可能已经有所发展或是发生改变。

    https://github.com/leohotfn/Reuzel 欢迎来 star 和 fork!

    12 条回复    2017-05-24 15:41:09 +08:00
    chchwy
        1
    chchwy  
       2017-05-23 17:44:21 +08:00
    只有 Linux 阿...
    000wangxinyu000
        2
    000wangxinyu000  
       2017-05-23 17:47:22 +08:00
    将 task 封装成抽象类,每次 addTask 传入子类对象。子类中可以保存一些与任务相关的状态变量。
    000wangxinyu000
        3
    000wangxinyu000  
       2017-05-23 17:48:27 +08:00
    将与系统相关的 api 都封装起来,例如锁类和线程类。在不同的平台有不同的实现。
    000wangxinyu000
        4
    000wangxinyu000  
       2017-05-23 17:49:08 +08:00
    然后加入一些日志以及性能监控之类的功能,就越来越复杂了
    AngelCriss
        5
    AngelCriss  
       2017-05-23 17:50:35 +08:00
    https://github.com/abbycin/tools/tree/master/threadpool
    我也贴一个,给点意见啊。。
    luoqeng
        6
    luoqeng  
       2017-05-23 19:37:54 +08:00
    std::thread
    zmj1316
        7
    zmj1316  
       2017-05-23 20:22:49 +08:00
    pthread ...
    araraloren
        8
    araraloren  
       2017-05-24 08:45:08 +08:00
    linux only 也叫 feature 吗 - - ?
    gesse
        9
    gesse  
       2017-05-24 09:35:37 +08:00


    半个月不到的个人小众项目, 一下刷到 111 stars,v2ex 小伙伴太给力了, 不过感觉是不是有碍公平? 扰乱平台?
    sgissb1
        10
    sgissb1  
       2017-05-24 10:07:22 +08:00   ❤️ 1
    @gesse 关键估计哥们看了 boost 里面的代码,虽然代码量不大,但确实能看到部分 boost 写法的影子。一个简易的线程池,如果是出于学习和研究的目的,还是值得鼓励。

    但如果出于其他目的就拉倒了。

    这年头号称会用、懂线程的人太多了,但线程粒度也不算大,要玩转也不容易。看看代码就可以决定要不要 satr、fork 了。
    popstk
        11
    popstk  
       2017-05-24 13:37:30 +08:00
    https://github.com/log4cplus/ThreadPool 这个充分使用 C++11 语法,更加轻量仅一个头文件。
    timothyqiu
        12
    timothyqiu  
       2017-05-24 15:41:09 +08:00
    既然已经用了 C++11 了,为什么还要自己造轮子不用 std::thread 系列……
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   934 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 20:16 · PVG 04:16 · LAX 13:16 · JFK 16:16
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.