一、tornado简介
1、概述
Tornado是一种 Web 服务器软件的开源版本。Tornado 和主流Web 服务器框架(包括大多数 Python 的框架)有着明显的区别 它是非阻塞式服务器,而且速度相当快
得利于其非阻塞的方式和对epoll的运用,Tornado 每秒可以处理数以千计的连接,因此 Tornado 是实时 Web 服务的一个 理想框架
2、阻塞
阻塞调用是指调用结果返回之前,当前线程会被挂起。函数只有在得到结果之后才会返回
阻塞等待: 空出大脑可以安心睡觉。(不占用CPU宝贵的时间片)
3、非阻塞
非阻塞和阻塞的概念相对应,指在不能立刻得到结果之前,该函数不会阻塞当前线程,而会立刻返回
非阻塞,忙轮询: 浪费时间,浪费电话费,占用快递员时间(占用CPU,系统资源)
4、epoll
epoll是Linux内核为处理大批量文件描述符而作了改进的poll,是Linux下多路复用IO接口select/poll的增强版本,它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率
epoll特点好处
增加了对I/O多路复用的技术 只关心“活跃”的链接,无需遍历全部描述符集合 能够处理大量的链接请求(系统可以打开的文件数目)
二、Tornado与Django对比
1、Tornado
- 优点 轻量、异步非阻塞IO处理方式、出色的抗负载能力、协程带来优异的处理性能
- 缺点 没有ORM,提供的支持和模板少,缺少后台支持,对小型项目来说开发速度没有django快
分析:tornado所谓的“缺点”是由它的设计理念决定的,设计上就决定它是一个小而精的http服务器 轻量级web框架,高并发处理才是它真正擅长的
2、Django
- 优点 大而全的框架,全自动化的管理后台带来超高的开发效率,丰富的组件
- 缺点 厚重,与他自己的ORM高耦合
分析:Django提供的方便,也意味着Django内置的ORM跟框架内的其他模块耦合程度高。应用程序必须使用Django内置的ORM,否则就不能享受到框架内提供的种种基于其ORM的便利;理论上可以切换掉其ORM模块,但这就相当于要把装修完毕的房子拆除重新装修,倒不如一开始就去毛胚房做全新的装修。Django的卖点是超高的开发效率,其性能扩展有限
三、安装
1、打开终端
2、过程
输入命令
代码语言:javascript复制pip install tornado
图解
验证
代码语言:javascript复制<span class="hljs-meta">>>> </span><span class="hljs-keyword">import</span> tornado
<span class="hljs-meta">>>> </span>tornado.version
<span class="hljs-string">'6.0.3'</span>