【问题标题】:Stackless in PyPy and PyPy + greenlet - differencesPyPy 和 PyPy + greenlet 中的 Stackless - 区别
【发布时间】:2012-01-22 11:34:03
【问题描述】:

新版本的 PyPy 带有集成的 Stackless。 据我所知,捆绑的 Stackless 与 2001 年的原始 Stackless 不同,并有延续。所以主要是带有调度程序的绿色线程框架。

Greenlet 是 Stackless 的衍生版本,它提供 Stackless 绿色线程功能作为扩展模块。

使用 PyPy 中的“本机”StacklessPyPy + greenlet + 一些调度程序有什么好处(例如:gevent)? 或者问题是我不能在 PyPy 中使用这些类型的扩展?更具体地说:我知道 PyPy 有自己的 greenlet 实现(基于 continulet)。但我很好奇在 PyPy 中将外部 greenlet 与 gevent 和 internal one 链接的可能性。

PyPy 是否附带一个异步 IO 库以供使用 Stackless 而非标准库?

我知道 stackless 本身和 Python 的其他异步轻线程扩展(eventlet、gevent、twisted...)。所以我不是在寻找它们之间的差异,而是从 pypy 和无堆栈构建中获得的优势。

【问题讨论】:

    标签: python gevent pypy python-stackless greenlets


    【解决方案1】:

    PyPy 是否附带一个异步 IO 库以供使用 Stackless 而非标准库?

    从 PyPy 2.6.1 和 PyPy3 2.4.0 开始,您可以使用 asyncio(通过 pypi 包)替换 stackless 的异步功能

    使用 PyPy 中的“本机”Stackless 比 PyPy + greenlet + 一些调度程序有什么好处吗

    在更丰富的 Stackless API(例如微线程的酸洗)之外,它可以提高速度,因为调度程序是用 C 编写的运行时的一部分。基准测试应该使这一点显而易见。

    有关stackless的更多信息,请查看这篇文章What is Stackless?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-04-17
      • 2014-03-28
      • 1970-01-01
      • 1970-01-01
      • 2021-12-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多