PyPy和PyPy+greenlet差异中的Stackless

2024-05-15 19:45:38 发布

您现在位置:Python中文网/ 问答频道 /正文

新版本的PyPy提供集成无堆栈。 据我所知,捆绑的Stackless与2001年推出的Stackless不同。因此主要是使用dispatcher的green threads框架。在

Greenlet是Stackless的一个spin,它提供Stackless green threads功能作为扩展模块。在

使用PyPy的“native”StacklessPyPy+greenlet+某些调度程序(例如:gevent)有什么好处?或者问题是我不能在PyPy中使用这些类型的扩展?更具体地说:我知道PyPy有自己的greenlet实现(基于continuet)。但是我很好奇外部greenlet和gevent以及PyPy中的内部greenlet之间的联系。在

PyPy是否附带异步IO库,以便使用Stackless而不是标准IO库?

我知道stackless本身和python的其他异步轻线程扩展(eventlet、gevent、twisted…)。所以我不想看它们之间的区别,而是看pypy与内建stackless的优势。在


Tags: io功能版本框架堆栈geventgreenpypy
1条回答
网友
1楼 · 发布于 2024-05-15 19:45:38

PyPy是否附带异步IO库,以便使用Stackless而不是标准IO库?

从pypy2.6.1和PyPy3 2.4.0开始,您可以使用asyncio(通过pypi包)来替换stackless的异步特性。在

使用PyPy中的“native”Stackless比PyPy+greenlet+some dispatcher有什么好处

在更丰富的Stackless API(例如微线程的酸洗)之外,由于调度程序是用C编写的运行时的一部分,所以它可以是速度。基准测试应该使这一点变得明显或不明显。在

有关stackless的更多信息,请参阅本文What is Stackless?

相关问题 更多 >