脚本语言 需要明确标记协程切出位置,这似乎是一个不理想(妥协?)的设计

18 小时 7 分钟前
 pursuer

需要明确标记协程切出(被广泛称为无栈协程)的设计我觉得用在静态类型语言中,是很合理的,这类语言要求性能,无栈协程更利于性能优化,特别是解决并发问题的时候,并且标记函数的副作用也是符合静态语言的诉求的(但神奇的是用的较多的 Java 和 Go 都是用了有栈模型)

但脚本语言通常性能瓶颈不在这里,需要编写快速,消除细节,但以几个比较流行的通用脚本语言为例

python,js 都采用的无栈协程方案

js 的话我理解因为 js 的设计就是在单线程环境下运行,采用有栈方案的话会影响历史代码的兼容性?

python 之前多线程就是抢占式的,但是之后还是采用了无栈方案,是因为 c-api 兼容吗

似乎就 lua 支持了有栈的方案?但 lua 的生态却很比较单薄。

323 次点击
所在节点    程序员
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://yangjunhui.monster/t/1131958

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX