Hi,
在实现一个独立栈的协程,之所以没有使用共享栈,主要还是优先考虑的切换开销,不过实现中允许协程任务创建时指定栈大小,不必每个任务相同大小,一定程度上缓解浪费吧。但是,如果估算太小,当然是有栈溢出的风险的。
那么,到底有没有既能不浪费内存,又能减少切换开销的栈解决方法呢?
已有 thread: https://github.com/Tencent/libco/issues/80
1
JamesRuan 2018-04-13 18:05:00 +08:00
你把栈空间当作资源去分配。
分配简单则可能分配不均,浪费还是小事,stack overflow 了呢? 分配复杂则可以接近按需分配,资源浪费小,但是开销大。 但是你又不可能在分配前就精确知道需求,不然这个问题就不存在了。 所以,最好两个都实现,让用户自己去挑,并为自己的选择负责。 |