PyPy的新版本附带集成的无堆栈。据我所知,捆绑的Stackless与2001年的原始Stackless不同。所以主要是带有调度器的绿色线程框架。
Greenlet是Stackless的衍生产品,它作为扩展模块提供了Stackless绿色线程功能。
使用PyPy的"native"Stackles比PyPy+greenlet+一些调度器(例如:gevent)有什么好处吗或者问题是我不能在PyPy中使用这些类型的扩展?更具体地说:我知道PyPy有自己的greenlet实现(基于continuet)。但我很好奇在PyPy中将外部greenlet与gevent和内部greenlet联系起来的可能性。
PyPy是否附带了用于Stackless的异步IO库而不是标准IO库
我知道stackless本身和python的其他异步轻线程扩展(eventlet、gevent、twisted…)。所以我不想看它们之间的区别,而是看pypy与内置stackless的优势。
PyPy是否附带了用于Stackless的异步IO库而不是标准IO库
从PyPy 2.6.1和PyPy3 2.4.0开始,您可以使用asyncio(通过pypi包)来取代无堆栈的异步特性。
使用PyPy的"本地"无堆栈比PyPy+greenlet+一些调度器有什么好处吗
在更丰富的Stackless API之外(例如酸洗微通),它可以是速度,因为调度器是用C编写的运行时的一部分。基准测试应该让这一点变得明显或不明显。
有关无堆叠的更多信息,请参阅这篇文章什么是无堆叠?