可惜,二和三现在还没有出来~

~~~~~~~~~~~~~~~~~~~~~~~~~

http://python.jobbole.com/88291/

~~~~~~~~~~~~~~~~~~~~~~~~~~~

在Python 3.3 引入yield from新语法之后,就不再推荐用yield去做协程。全都使用yield from由于其双向通道的功能,可以让我们在协程间随心所欲地传递数据。

4.5.3 yield from改进协程总结

用yield from改进基于生成器的协程,代码抽象程度更高。使业务逻辑相关的代码更精简。由于其双向通道功能可以让协程之间随心所欲传递数据,使Python异步编程的协程解决方案大大向前迈进了一步。

于是Python语言开发者们充分利用yield from,使 Guido 主导的Python异步编程框架Tulip迅速脱胎换骨,并迫不及待得让它在 Python 3.4 中换了个名字asyncio以“实习生”角色出现在标准库中。

4.5.4 asyncio 介绍

asyncio是Python 3.4 试验性引入的异步I/O框架(PEP 3156),提供了基于协程做异步I/O编写单线程并发代码的基础设施。其核心组件有事件循环(Event Loop)、协程(Coroutine)、任务(Task)、未来对象(Future)以及其他一些扩充和辅助性质的模块。

在引入asyncio的时候,还提供了一个装饰器@asyncio.coroutine用于装饰使用了yield from的函数,以标记其为协程。但并不强制使用这个装饰器。

虽然发展到 Python 3.4 时有了yield from的加持让协程更容易了,但是由于协程在Python中发展的历史包袱所致,很多人仍然弄不明白生成器和协程的联系与区别,也弄不明白yield和 yield from 的区别。这种混乱的状态也违背Python之禅的一些准则。

于是Python设计者们又快马加鞭地在 3.5 中新增了async/await语法(PEP 492),对协程有了明确而显式的支持,称之为原生协程。async/await 和 yield from这两种风格的协程底层复用共同的实现,而且相互兼容。

在Python 3.6 中asyncio库“转正”,不再是实验性质的,成为标准库的正式一员。

4.6 总结

行至此处,我们已经掌握了asyncio的核心原理,学习了它的原型,也学习了异步I/O在 CPython 官方支持的生态下是如何一步步发展至今的。

实际上,真正的asyncio比我们前几节中学到的要复杂得多,它还实现了零拷贝、公平调度、异常处理、任务状态管理等等使 Python 异步编程更完善的内容。理解原理和原型对我们后续学习有莫大的帮助。

深入理解python异步编程 中_这篇文章讲得精彩-深入理解 Python 异步编程(上)!相关推荐

  1. python各种插件安装_如何在各种环境下正确地安装python——Windows

    #python##Windows# 之前那篇文章说了怎么样去在mac os x上安装系统,接下来是Windows 首先,遵守安装指引.它是Windows7+的社区系统包管理器(很像mac os x上的 ...

  2. python入门书籍推荐,看这篇文章就够,请!

    python入门书籍推荐,看这篇文章就够,请! 事实上,有关python的书籍很多很多,就当当网就有50000件和python有关的书籍,我特地去了当地的新华书店,蹲了大半天,回来给大家推荐,适合想学 ...

  3. SpringBoot的四种异步处理,写这篇文章,我自己先学到了

    最近更新了一系列关于异步和回调的文章,比如<一篇文章,搞明白异步和多线程的区别>.<两个经典例子让你彻底理解java回调机制>.<异步请求和异步调用有区别?>,大家 ...

  4. python正在处理中_协程和 asyncio

    在本系列的 第 1 部分 中,您了解了 Python 迭代器:在 第 2 部分 中,您了解了 itertools.在这一部分,将了解一种称为协程(Coroutines)的特殊的生成器函数.您还将了解另 ...

  5. python 自动收集经济数据_完结】数据分析思维案例实战92 用Python自动办公,做职场高手【更新中】91.一课经济...

    相信会看到这篇文章的每- -位朋友,都是有寻找这个课程来努力学习.提升自我的想法.怎么样更低成本找到这个课程进行学习变成了很多人的难题?那么就让我来帮你吧. 那么今天的正题就是我们怎么样才能低成本找到 ...

  6. python拦截广告弹窗_会捆绑软件、弹出广告?Python教你实现纯净中英自动翻译小工具...

    本文原创,未经允许不得转载,本文版权归@itcast @wj14k所有,感谢你的阅读! 翻译工具在安装会捆绑其他软件 翻译工具会跳出你不喜欢的广告 -- 对捆绑.广告说不! Python实现纯净翻译小 ...

  7. 阿里达摩院python教程真的吗_阿里达摩院推荐的最新400集python教程,据说懂中文就能上手...

    小编的内心是强大的,网友虐我千百遍,我待网友如初恋,因为今天又给大家带来了干货,Python入门教程完整版,完整版啊!完整版! 为了吸取教训,小编一定要分享一下攻略,"怎样获得小编分享的教程 ...

  8. python做数学计算器_从零开始学习PYTHON3讲义(二)把Python当做计算器

    <从零开始PYTHON3>第二讲 上一讲我们说过了如何启动Python IDLE集成开发学习环境,macOS/Linux都可以在命令行执行idle3.Windows则从开始菜单中去寻找ID ...

  9. 编程课程_您可以从今天开始的300项免费在线编程课程

    编程课程 学习您感兴趣的编程语言 最近,我调查了Udemy数据库并找到了这些免费的在线课程. 我已经创建了300种此类免费在线课程的清单,您可以从今天开始. 我已经根据主题和主题对在线课程进行了分类. ...

最新文章

  1. Java Setamp;HashSet
  2. QString::QString 中文乱码
  3. linux 安装go编译器,CentOS 7 安装 go 语言开发环境
  4. 【软考-软件设计师】数据表示
  5. Qt Creator将应用程序部署到通用远程Linux设备
  6. 面试官:Java 线程如何启动的?
  7. Apache阶段二-
  8. 图像基础 PSNR 峰值信噪比
  9. 2016年软件评测师真题精选
  10. 如何引用维基百科Wikipedia
  11. UFS Host基础特性分析 -- 软件部分
  12. 解决office2007打开很慢问题
  13. Android自定义控件(高手级)--JOJO同款能力分析图,这份字节跳动历年校招Android面试真题解析
  14. Appium 真机测试
  15. Leetcode #765 情侣牵手(贪心算法)
  16. 433模块-----HCS301芯片烧录器
  17. iOS新方法systemFontOfSize: weight:
  18. hystrix熔断器之配置
  19. linux下jdk安装步骤_jdk下载安装步骤
  20. FFmpeg sws_scale库文件分析

热门文章

  1. 文件读取(FileInputStream 读取本地文件)
  2. 艾永亮:太二,一道酸菜鱼征服中国人的味蕾
  3. 婴儿摇篮语音播放芯片,高品质MP3音乐播放芯片,WT2003H
  4. 提取pdf文件中的表格数据
  5. windows下composer 安装设置阿里镜像
  6. Hibernate 介绍与入门
  7. 人工智能的黎明:混战中的语音识别
  8. 华为OD机试真题-查找充电设备组合【2023Q1】【JAVA、Python、C++】
  9. python实现dem输出三维模型_python实现DEM数据的阴影生成的方法
  10. mysql 添加外键约束