tornado框架介绍

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

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

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

1.同步与异步

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

所谓同步,就是在发出一个调用时,在没有获得结果以前,该调用不会返回。可是一旦调用返回,就获得返回值了。编程

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

而异步则是相反,调用发出以后,这个调用就直接返回了,因此没有返回结果。换句话说,当一个异步过程调用发出后,调用者不用马上获得结果。而是在调用发出后,被调用者经过状态,通知来通知调用者,或经过回调函数处理这个调用。服务器

 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框架基本上用法都差很少。提议看下框架源码,帮助挺大的。

相关文章
相关标签/搜索