组团学

初识tornado

阅读 (178976)

一、tornado简介

1、概述

Tornado是一种 Web 服务器软件的开源版本。Tornado 和主流Web 服务器框架(包括大多数 Python 的框架)有着明显的区别 它是非阻塞式服务器,而且速度相当快

得利于其非阻塞的方式和对epoll的运用,Tornado 每秒可以处理数以千计的连接,因此 Tornado 是实时 Web 服务的一个 理想框架

2、阻塞

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

20181229220901749.png
阻塞等待: 空出大脑可以安心睡觉。(不占用CPU宝贵的时间片)

3、非阻塞

非阻塞和阻塞的概念相对应,指在不能立刻得到结果之前,该函数不会阻塞当前线程,而会立刻返回

20181229220951308.png

非阻塞,忙轮询: 浪费时间,浪费电话费,占用快递员时间(占用CPU,系统资源)

4、epoll

epoll是Linux内核为处理大批量文件描述符而作了改进的poll,是Linux下多路复用IO接口select/poll的增强版本,它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率

20181229221555902.png

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、打开终端

屏幕快照 20191223 下午2.17.00.png

2、过程

  1. 输入命令

    pip install tornado
  2. 图解

屏幕快照 20191223 下午2.19.46.png

  1. 验证

    >>> import tornado >>> tornado.version '6.0.3'

屏幕快照 20191223 下午2.21.08.png

需要 登录 才可以提问哦