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

协程任务栈技术交流

  •  
  •   heiher · 2018-04-13 17:01:39 +08:00 · 3109 次点击
    这是一个创建于 2418 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Hi,

    在实现一个独立栈的协程,之所以没有使用共享栈,主要还是优先考虑的切换开销,不过实现中允许协程任务创建时指定栈大小,不必每个任务相同大小,一定程度上缓解浪费吧。但是,如果估算太小,当然是有栈溢出的风险的。

    那么,到底有没有既能不浪费内存,又能减少切换开销的栈解决方法呢?

    已有 thread: https://github.com/Tencent/libco/issues/80

    1 条回复    2018-04-13 18:05:00 +08:00
    JamesRuan
        1
    JamesRuan  
       2018-04-13 18:05:00 +08:00
    你把栈空间当作资源去分配。
    分配简单则可能分配不均,浪费还是小事,stack overflow 了呢?
    分配复杂则可以接近按需分配,资源浪费小,但是开销大。
    但是你又不可能在分配前就精确知道需求,不然这个问题就不存在了。
    所以,最好两个都实现,让用户自己去挑,并为自己的选择负责。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1050 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 64ms · UTC 19:26 · PVG 03:26 · LAX 11:26 · JFK 14:26
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.