• tornado框架介绍


    Tornado是一个Python web框架和异步网络库,最初是在FriendFeed开发的。通过使用非阻塞网络I/O, Tornado可以扩展到数以万计的开放连接,非常适合长轮询、WebSockets和其他需要与每个用户进行长时间连接的应用程序。

    我们知道tornado是一个异步网络库而且是非阻塞网络IO模型,那, 什么是异步,同步, 什么又是阻塞非阻塞呢?

    (来自知乎上面严肃大牛的解答~)

    1.同步与异步

    同步和异步关注的是消息通信机制 

    所谓同步,就是在发出一个调用时,在没有得到结果之前,该调用不会返回。但是一旦调用返回,就得到返回值了。

    换句话说,就是由调用者主动等待这个调用的结果

    而异步则是相反,调用发出之后,这个调用就直接返回了,所以没有返回结果。换句话说,当一个异步过程调用发出后,调用者不用立刻得到结果。而是在调用发出后,被调用者通过状态,通知来通知调用者,或通过回调函数处理这个调用。

     2.阻塞与非阻塞

    阻塞与非阻塞关注的是程序在等待调用结果时的状态 

    阻塞调用是指调用结果返回之前,当前线程会被挂起。调用线程只有在等到结果之后才会返回。

    非阻塞调用指在不能立刻得到结果之前,该调用不会阻塞当前线程。

    PS:如果想深入了解同步,异步,阻塞,非阻塞,常见的IO模型以及IO多路复用,可以去看看unix网络编程。

    然后再来看看python三大框架的区别~~ 

    简单聊聊django, flask, tornado

    1.django框架 

    这个框架给人第一印象就是很“重”,django就是一个重型武器,它的MVC设计非常优美。基本上把你开发需要用的功能都给你封装好了,你直接拿来用就好。

    所以django开发效率是最高的,但是它给你什么都封装的太好,你必须按着它那套来,可扩展性差了点。

    2.flask框架

    这个和django对比起来,它就是一个短小精悍的武器,非常轻量级这个框架,内置的组件远远比不上django,但是flask有非常强大且活跃的第三方社区提供的牛逼插件,

    真正用起来django的组件可以去找插件来弥补。然后学习flask的话,建议把源码搞明白了,因为flask是个可扩展性非常强的框架,搞懂源码以后方面封装flask的功能。。

    3.tornado框架

    这个和前面两个框架最大的区别就是,tornado是一个异步网络库,用的非阻塞网络IO模型,所以性能是比较高的。自身还可以用来做web服务器。

    PS:其实学会了一个框架,就发现 web框架基本上用法都差不多。提议看下框架源码,帮助挺大的。

  • 相关阅读:
    Java实现调用API识别图像中的文字并对图片重命名
    推荐大家一个人工智能领域安全信息学方向旗舰会议(EI索引),诚邀广大学子投稿!
    python随笔 1
    Neo4j
    Web项目部署到tomcat外部并配置其他端口访问和无项目名
    springboot项目
    解决找不到参数 问题,MyBatisSystemException
    置顶功能 -- 数据表格的某行数据的置顶功能 -- Demo
    Spring-Task定时任务, (springboot项目, 动态设置时间) -- Demo
    BootStrap-table表格 -- Demo
  • 原文地址:https://www.cnblogs.com/Xuuuuuu/p/11173099.html
Copyright © 2020-2023  润新知