美文网首页知识小点
stackless/stackfull coroutine 笔记

stackless/stackfull coroutine 笔记

作者: wwq2020 | 来源:发表于2018-05-16 11:19 被阅读0次

看了一些语言的coroutine的使用方式后,不免有些疑问,为什么区别这么大

这就涉及到stackless/stackfull实现方式的影响了

stackless coroutine的 栈 的调用栈复用,栈内信息保存在堆上(用于恢复)

stackfull coroutine的有独立私有的栈

stackless coroutine 最大的优势就是性能好,缺点就是易用性

stackfull coroutine的最大优势就是易用性,缺点就是空间浪费,性能差

stackless coroutine 增加语义化支持(通过强大的编译器做了很多事), 在易用性方面已经不弱于stackfull coroutine了

而stackfull coroutine 增通过预分配一定大小的栈,检查是否超出(go似乎是通过编译器在函数调用前插入检查代码)来扩容,采取一定的收缩策略(go似乎是垃圾回收时候进行收缩的)

参考:

https://stackoverflow.com/questions/28977302/how-do-stackless-coroutines-differ-from-stackful-coroutines

https://blog.varunramesh.net/posts/stackless-vs-stackful-coroutines/

相关文章

网友评论

    本文标题:stackless/stackfull coroutine 笔记

    本文链接:https://www.haomeiwen.com/subject/nkqpdftx.html