资讯专栏INFORMATION COLUMN

【generator101】 - pypy的api

Luosunce / 3258人阅读

摘要:从到到再到,各家的语法都不太一样。底层的实现是,看名字应该是的意思。然后在这个基础上实现了的和的。的的语法风格也是类似所以从语法上来说就三类这样强制要求的为代表的隐式控制权的为代表强买强卖编码风格的

从generator到greenlet到stackless再到pypy,各家的语法都不太一样。pypy底层的实现是continulet,看名字应该是continuation的意思。然后在这个基础上实现了stackless的api和greenlet的api。这种实现都是在用户代码里,而不是在解释器的内置库里实现的。

from _continuation import continulet

def func(cont, a, b):
    print(a)
    cont.switch()
    print(b)

cont = continulet(func, "hello", "world")
cont.switch()
print("switched from continulet")
cont.switch()

代码的输出是

hello
switched from continulet
world

从使用的感觉上非常类似于greenlet。感觉就是把greenlet隐式的当前greenlet的概念变成了显式的第一个函数参数。Java的quasar的语法风格也是类似: http://docs.paralleluniverse.co/quasar/
所以从语法上来说就三类

generator这样强制要求yield的

greenlet为代表的隐式yield控制权的

stackless为代表强买强卖actor编码风格的

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/37390.html

相关文章

  • generator101】 - generator是一种显式控制协程

    摘要:协程其实就是一个可中途中断,由外部来控制执行进程的函数。这些第三方的选择的共同特点是协程的都是隐式的。这就是显示控制和隐式控制的区别。本文讨论的协程就是这一种,后面会逐渐展开到如何利用这种显示控制的协程来解决阻塞和流程阻塞的问题。 Python官方的实现里,协程只有generator这一招。协程其实就是一个可中途中断,由外部来控制执行进程的函数。除了官方的generator,还有很多第...

    894974231 评论0 收藏0
  • 【协程原理】 - 为什么greenlet状态无法被保存

    摘要:特别是最火的协程框架也无法保存状态,让人非常惋惜。但是因为栈的本身无法持久化,所以也就无法持久化。其难度在于,假设整个要持久化的调用栈全部都是内的,比如纯的。采取的是暴力地把整个栈区域拷贝到上的方式来保存其状态。 python主流的协程实现有五种: cPython的generator cPython的greenlet cPython的fibers stackless python ...

    verano 评论0 收藏0
  • generator101】 - stacklessapi

    摘要:如果说相比来说,是一种隐式的协程的话,提供的就更加隐式了。通过调用可以知道这个链表目前的大小。正式因为没有把底层的协程直接控制接口开放,而是强买强卖了一个,所以想要在像那样随心所欲的操纵协程还是颇费一番周折的。 如果说greenlet相比generator来说,是一种隐式的协程的话,stackless python提供的api就更加隐式了。 import stackless def...

    philadelphia 评论0 收藏0
  • 使用pipenv代替virtualenv管理python包

    摘要:前言第一次接触到是因为看到董明伟大神的使用管理你的项目,之前可能和大家的选择类似使用或者来管理的包环境。是针对的包的多版本管理,通过将包安装到一个模块来作为的包虚拟环境,通过切换目录来实现不同包环境间的切换。 前言 第一次接触到 pipenv 是因为看到@董明伟大神的《使用pipenv管理你的项目》,之前可能和大家的选择类似使用 virtualenv 或者 pyenv 来管理 pyth...

    whidy 评论0 收藏0
  • 保姆级教程带你开发优质Python库之上篇【建议收藏】

    摘要:正式的专栏第篇,同学站住,别错过这个从开始的文章前面学委的入门到精通专栏积累了篇文章,当然学委博客还有几十篇应用的文章。 正式的Python专栏第9篇,同学站住...

    hyuan 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<