资讯专栏INFORMATION COLUMN

Python:Tornado 第一章:异步及协程基础:第一节:同步与异步I/O

Anleb / 1667人阅读

摘要:上一篇文章开篇下一篇文章第一章异步及协程基础第二节关键字协程是种推荐的编程方式,使用协程可以开发出简捷高效的异步处理代码。同步操作,导致进程阻塞,直到操作完成异步操作,不会导致请求进程阻塞。

上一篇文章:Python:Tornado 开篇
下一篇文章:Python:Tornado 第一章:异步及协程基础:第二节:Python关键字yield

协程是Tornado种推荐的编程方式,使用协程可以开发出简捷、高效的异步处理代码。

同步与异步I/O对比

众所周知,CPU的运行效率高于磁盘的存储,也高于网络请求,这就导致CPU对数据的处理和数据的存储或者网络请求(I/O操作)步伐不一致,此时可以选择I/O操作同步或者异步。

同步I/O操作,导致进程阻塞,直到I/O操作完成;

异步I/O操作,不会导致请求进程阻塞。

Tornado同步I/O的简单代码实例:

代码:

#导入Tornado的HTTP客户端
from tornado.httpclient import HTTPClient

def synchronous_visit():
    http_client=HTTPClient()
    #阻塞,知道对网址访问完成
    respone=http_client.fetch("http://www.baidu.com")
    print(respone.body)
synchronous_visit()

HTTPClient是Tornato的同步访问HTTP客户端。上述代码中的synchronous_visit()函数使用了典型的同步I/O操作来访问网址,该函数的执行时间取决于网络速度、对方服务器的响应速度,只有当访问完全结束并获取结果后,该函数才能执行完成。

Tornado异步I/O的简单代码实例:
from tornado.httpclient import AsyncHTTPClient
def handle_response(response):
    print(response.body)

def asyncronous_visit():
    http_client=AsyncHTTPClient()
    http_client.fetch("http://www.baoidu.com",callback=handle_response)

AsyncHTTPClient是Tornado的异步访问HTTP客户端。在上述代码中的asynchronous_visit()函数中使用了AsyncHTTPClient对第三方网站进行异步访问,http_client.fetch()函数会在调用后立刻返回而无需等待实际访问的完成,从而导致asynchronous_visit()也会立刻执行完成。当对网址的访问实际完成后,AsyncHTTPClient会调用callback参数指定的函数,可以在这个函数中处理访问结果。

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

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

相关文章

  • PythonTornado 一章异步协程基础:第二节:Python关键字yield

    摘要:在种,使用关键字定义的迭代器也被称为生成器迭代器迭代器是访问集合内元素的一种方式。调用任何定义包含关键字的函数都不会执行该函数,而是会获得一个队应于该函数的迭代器。 上一篇文章:Python:Tornado 第一章:异步及协程基础:第一节:同步与异步I/O下一篇文章:Python:Tornado 第一章:异步及协程基础:第三节:协程 协程是Tornado中进行异步I/O代码开发的方法...

    reclay 评论0 收藏0
  • PythonTornado 一章异步协程基础:第三节:协程

    摘要:上一篇文章第一章异步及协程基础第二节关键字下一篇文章第二章实战演练开发网站第一节网站结构使用协程可以开发出类似同步代码的异步行为。协程函数可以通过以下三张方式调用在本身是协程的函数内通过关键字调用。 上一篇文章:Python:Tornado 第一章:异步及协程基础:第二节:Python关键字yield下一篇文章:Python:Tornado 第二章:实战演练:开发Tornado网站:第...

    charles_paul 评论0 收藏0
  • PythonTornado 开篇

    摘要:作为网站的基础框架,于年月日发布,目前已经获得了很多社区的支持,并且在一系列不同的场景种得到应用。使用该框架,开发者能够快速开发出即安全又强大的用户身份认证机制,例如机制用户身份认证防止跨站攻击等等。 下一篇文章:Python:Tornado 第一章:异步及协程基础:第一节:同步与异步I/O Tornado是一个可扩展的非阻塞Web服务器以及相关工具的总称。Tornado每秒可以处理...

    Anshiii 评论0 收藏0
  • PythonTornado 第二章:实战演练:开发Tornado网站:第一节:网站结构:Hello

    摘要:上一篇文章第一章异步及协程基础第三节协程下一篇文章第二章实战演练开发网站第二节网站结构路由解析实例浏览器输入链接页面显示下面逐行解析上面的代码做了些什么首先通过语句引入包中的和类。该对象的第一个餐食用于定义程序的路由映射。 上一篇文章:Python:Tornado 第一章:异步及协程基础:第三节:协程下一篇文章:Python:Tornado 第二章:实战演练:开发Tornado网站:第...

    Taonce 评论0 收藏0
  • Tornado 4.3文档翻译: 用户指南-异步和非阻塞I/O

    摘要:译者说于年月日发布,该版本正式支持的关键字,并且用旧版本编译同样可以使用这两个关键字,这无疑是一种进步。其次,这是最后一个支持和的版本了,在后续的版本了会移除对它们的兼容。 译者说 Tornado 4.3于2015年11月6日发布,该版本正式支持Python3.5的async/await关键字,并且用旧版本CPython编译Tornado同样可以使用这两个关键字,这无疑是一种进步。其次...

    smartlion 评论0 收藏0

发表评论

0条评论

Anleb

|高级讲师

TA的文章

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