Go 实现的固定 routine pool, 挂掉重新拉起新 routine - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
hulk
V2EX    程序员

Go 实现的固定 routine pool, 挂掉重新拉起新 routine

  •  
  •   hulk
    git-hulk 2021-07-19 19:38:51 +08:00 1914 次点击
    这是一个创建于 1546 天前的主题,其中的信息可能已经有所发展或是发生改变。

    GitHub: https://github.com/git-hulk/routines

    看了一圈没有看到比较满意的实现,自己编个方轮子~

    4 条回复    2021-07-21 20:10:14 +08:00
    wellsc
        1
    wellsc  
       2021-07-20 11:03:37 +08:00
    这东西应该是 gmp 封装好的
    PiersSoCool
        2
    PiersSoCool  
       2021-07-20 13:46:29 +08:00
    支持楼主开源。

    虽然我一直迷惑一些问题。说线程不好管理、增强复用就发明了线程池,然后又说线程池不能够满足大并发就搞了协程就不用线程池了,然后现在又搞出来协程池(本身就是线程池的 io 多路复用实现?),我确实比较困惑。
    THESDZ
        3
    THESDZ  
       2021-07-21 08:26:48 +08:00
    @PiersSoCool #2
    背景:
    1.硬件的资源是有限的
    2.并发本身是有峰谷的,峰值会超出硬件的上限
    3.希望程序在峰值时也能稳定运行
    4.线程有额外的开销

    线程不好管理、增强复用就发明了线程池 => 减少线程创建销毁的开销
    线程池不能够满足大并发就搞了协程就不用线程池了 => 相比于协程来说,线程的开销>协程开销
    又搞出来协程池 => 减少协程创建销毁的开销

    为啥会有池子 => 1.避免峰值情况下,软件所需的硬件资源超出硬件能力。2.管理线程,服用线程
    hulk
        4
    hulk  
    OP
       2021-07-21 20:10:14 +08:00
    GMP 可以帮忙做只是让并发更简单,而对于业务逻辑肯定是需要自己来做,比如控制最大并发。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5570 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by soliude
    VERSION: 3.9.8.5 24ms UTC 07:27 PVG 15:27 LAX 00:27 JFK 03:27
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86