未加星标

Python async/await 介绍Python

字体大小 | |
[大数据技术 所属分类 大数据技术 | 发布者 店小二04 | 时间 | 作者 红领巾 ] 0人收藏点击收藏

Python async/await 介绍Python
python
Python async/await 介绍Python
Hadoop
Python async/await 介绍Python
服务器
Python async/await 介绍Python
培训
Python async/await 介绍Python
Web

Python3.5增加了内置的async和await关键字。让我们用几个小例子来展示一下这两个关键字如何使用。


如果你不明白什么是“异步编程”,你可以简单地理解它为“在单个进程中同时处理多个任务的一种方法”。我们通常使用的进程经常花费大量的时间等待IO操作的完成。这种IO操作包括客户端请求网络、读取文件、查询数据库等等....同步程序一般是等待IO操作完成后再进行下一个任务,而异步程序则可以在IO操作期间去处理下一个任务。


这和你准备早餐的步骤有点相似。你煮了咖啡和茶,但是你不会待在那里等咖啡和茶煮好,而是直接去做饭或者烤面包了。你会并行地做多件事,当其中某项完成时,你会得到一个通知(可能是你的咖啡机或者电饭煲会叫)。这样,虽然你是一个进程,但是你能够更高效地同时完成很多工作。


我们下面看一个简单的例子,这里我们用asyncio.sleep模拟耗时的IO操作,并用asyncio.wait让它们并行运行。在Python3.5之前,代码应该大概是这样的:


Python async/await 介绍Python

这个例子中使用了原有的Python语法:装饰器和yield关键字。

运行这个脚本会有这样的输出:


Python async/await 介绍Python

如果使用Python3.5的语法,代码大概是这个样子:


Python async/await 介绍Python

新的async和await关键字清楚地表明我们在写的是一个异步函数,而不是普通的生成器。

然我们用Python3.5运行这个脚本:


Python async/await 介绍Python

再看一个更加复杂的例子,我们实现一个Web服务器,这个Web服务器本身还需要向其他服务发起请求。这种情况在监控网站经常发生。我们使用aiohttp,一个使用asyncio构建的服务器客户端套件。


Python async/await 介绍Python

让我们启动服务器


Python async/await 介绍Python

然后向这个服务器发送一个请求


Python async/await 介绍Python

英文原文:https://makina-corpus.com/blog/metier/2015/python-http-server-with-the-new-async-await-syntax


欢迎加入本站公开兴趣群

软件开发技术群

兴趣范围包括:Java,C/C++,Pythonphp,Ruby,shell等各种语言开发经验交流,各种框架使用,外包项目机会,学习、培训、跳槽等交流

QQ群:204132433


Hadoop源代码研究群

兴趣范围包括:Hadoop源代码解读,改进,优化,分布式系统场景定制,与Hadoop有关的各种开源项目,总之就是玩转Hadoop

QQ群:204050420

主题: 服务器HadoopPythonWeb服务JavaC++PHPRuby开源培训
tags: Python,IO,Python3,async,await,Web,Hadoop,asyncio,关键字,异步,例子
分页:12
转载请注明
本文标题:Python async/await 介绍Python
本站链接:https://www.codesec.net/view/572410.html


1.凡CodeSecTeam转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。
登录后可拥有收藏文章、关注作者等权限...
技术大类 技术大类 | 大数据技术 | 评论(0) | 阅读(132)