Python中Tornado同步与异步I/O实例代码讲解

本篇文章给大家带来的内容是关于Python中Tornado同步与异步I/O实例代码讲解,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

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

同步与异步I/O对比

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

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

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

立即学习“Python免费学习笔记(深入)”;

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

代码:

#导入Tornado的HTTP客户端from tornado.httpclient import HTTPClientdef 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 AsyncHTTPClientdef 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参数指定的函数,可以在这个函数中处理访问结果。

以上就是Python中Tornado同步与异步I/O实例代码讲解的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2260455.html

(0)
上一篇 2025年2月27日 05:38:45
下一篇 2025年2月18日 01:55:28

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • Python中的Tornado之HelloWorld的实现代码

    本篇文章给大家带来的内容是关于Python中的Tornado之HelloWorld的实现代码,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 实例:helloworld import tornado.ioloopimport…

    编程技术 2025年2月27日
    200
  • Python中Tornado的路由解析(附实例)

    本篇文章给大家带来的内容是关于python中tornado的路由解析(附实例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 向web.Application对象传递的第1个参数URL路由映射列表的配置方式与Django类…

    编程技术 2025年2月27日
    200
  • Python字符串拼接的方法总结(代码)

    本篇文章给大家带来的内容是关于python字符串拼接的方法总结(代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 python拼接字符串一般有以下几种方法: ①直接通过(+)操作符拼接 s = ‘Hello’+’ ‘+…

    编程技术 2025年2月27日
    200
  • python中正则表达式的详细介绍

    本篇文章给大家带来的内容是关于python中正则表达式的详细介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 正则 re = regular experssionre 模块使 Python 语言拥有全部的正则表达式功能。…

    2025年2月27日
    200
  • Python如何发送?python发送email的三种方式介绍

    本篇文章给大家带来的内容是关于php如何使用swooletaskworker实现异步操作mysql(代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 Python发送email的三种方式,分别为使用登录邮件服务器、使用…

    2025年2月27日
    200
  • Python以太坊虚拟机实现Py-EVM的内容介绍

    本篇文章给大家带来的内容是关于python以太坊虚拟机实现py-evm的内容介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 Py-EVM是用Python编写的以太坊虚拟机的新实现。目前github上695个star,正…

    编程技术 2025年2月27日
    200
  • Python中psutil库的使用介绍(详细)

    本篇文章给大家带来的内容是关于python中psutil库的使用介绍(详细),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 介绍 psutil能够轻松实现获取系统运行的进程和系统利用率。 导入模块 import psuti…

    编程技术 2025年2月27日
    200
  • Python爬虫框架Scrapy的使用教程

    本篇文章给大家带来的内容是关于python爬虫框架scrapy的使用教程,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 大家好,本篇文章我们来看一下强大的Python爬虫框架Scrapy。Scrapy是一个使用简单,功能强…

    编程技术 2025年2月27日
    200
  • python的基本数据类型有哪些?

    本篇文章给大家带来的内容是介绍python有哪些基本数据类型有哪些,有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所助。 1、python的一切都是对象,对象是包含属性和方法的一个整体。 2、数据类型的组成:身份 (内存地址,通过…

    编程技术 2025年2月27日
    200
  • python中什么是元组和集合 ?元组和集合的介绍

    本篇文章给大家带来的内容是python中什么是元组和集合 ?元组和集合的介绍。有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所助。 学习python的小伙伴们经常会有这样一个疑问,既然有列表里,问什么还要有元组呢。因为列表是可变的…

    编程技术 2025年2月27日
    200

发表回复

登录后才能评论