tornado-设计初衷

  1. 追求小而精

  2. epoll IO多路复用和协程

  3. 支持WebSocket

  4. 单线程程序(GIL限制,本身某种意义上不启动多进程就是单线程程序)

  # Python GIL介绍详情

tronado应用场景

  1. 大量的http请求连接(大量的用户请求,要求并发性和高性能)

tronado-基础-Hello World-Web架构

from tornado import web, ioloop

class HelloHandler(web.RequestHandler):
def get(self, *args, **kwargs):
self.write("Hello 北门吹雪") def make_app():
return web.Application([
("/", HelloHandler),
]) if __name__ == '__main__':
app = make_app()
app.listen(8000)
ioloop.IOLoop.current().start()

  

tornado请求原理图

  

经验:

  1. tornado高性能Web原理是利用Linux epoll IO多路模型和协程异步编程

  2. tornado Web框架核心模块是 web 和 核心事件循环模块是 IOLoop

tornado-简介和原理的更多相关文章

  1. Linux系统学习 十二、VSFTP服务—简介与原理

    1.简介与原理 互联网诞生之初就存在三大服务:WWW.FTP.邮件 FTP主要针对企业级,可以设置权限,对不同等级的资料针对不同权限人员显示. 但是像网盘这样的基本没有权限划分. 简介: FTP(Fi ...

  2. Mybatis简介与原理

    经常面试别人或者被面试,对Mybatis简介与原理这个问题的回答千差万别,为了更好的服务与以后,来个原理介绍. 什么是Mybatis MyBatis 本是apache的一个开源项目iBatis, 20 ...

  3. tomcat简介及原理解说

    Tomcat简介 作者:杨晓(http://blog.sina.com.cn/u/1237288325) 目录: ----Tomcat背景 ----Tomcat目录 ----Tomcat类加载 --- ...

  4. RPC简介及原理

    简介 RPC(Remote Procedure Call,远程过程调用)是建立在Socket之上的,在一台机器上运行的主程序,可以调用另一台机器上准备好的子程序,就像LPC(本地过程调用). 越底层, ...

  5. StarlingMVC简介,原理解说及示例源码

    StarlingMVC简介 StarlingMVC是一个为使用Starling来开发游戏的MVC框架.这个框架的特性方面,很像Swiz和RobotLegs,原理亦像Mate.其特性列表如下: 依赖注入 ...

  6. HBA简介及原理

    HBA,即主机总线适配器英文“Host Bus Adapter”缩写.是一个使计算机在服务器和存储装置间提供输入/输出(I/O)处理和物理连接的电路板和/或集成电路适配器. 简介 主机总线适配器(Ho ...

  7. Struts简介、原理及简单实现

    struts简介 Struts是Apache软件基金会(ASF)赞助的一个开源项目.它最初是jakarta项目中的一个子项目,并在2004年3月成为ASF的顶级项目.它通过采用JavaServlet/ ...

  8. HBase简介及原理

    HBase简介 1.HBase是一个万亿行,百万列大表(Big Table),数据存放在hdfs集群中: 写操作使用MapReduce处理,将(增删改)处理结果放入HBase中,读就直接读HBase: ...

  9. Python Tornado简介

    简介 Tornado 是 FriendFeed 使用的可扩展的非阻塞式 web 服务器及其相关工具的开源版本.这个 Web 框架看起来有些像web.py 或者 Google 的 webapp,不过为了 ...

  10. Spark Streaming简介及原理

    简介: SparkStreaming是一套框架. SparkStreaming是Spark核心API的一个扩展,可以实现高吞吐量的,具备容错机制的实时流数据处理. 支持多种数据源获取数据: Spark ...

随机推荐

  1. Codeforces 1321D Navigation System

    题意 有个人要从\(s\)走到\(t\),经过的路径给定.导航系统每次会显示当前节点到\(t\)的最短路,有多条就显示其中之一.这个人如果按照导航走,那么啥都没变.如果没有按导航走导航就会重新导航.问 ...

  2. 跟着尚硅谷系统学习Docker-【day02】

    day02-20200714   p9.docker阿里云配置   helloword   拉取镜像-运行-   拉取镜像如果从国外网站拉取辉比较慢,所以需要配置阿里云或者网易云得镜像仓库.   首先 ...

  3. IIS上传文件最大限制问题

    IIS服务器文件最大限制默认是30M. 自定义方法:修改配置文件,路径是:C:\Windows\System32\inetsrv\Config\applicationHost.config 在requ ...

  4. C015:十进制转8进制

    程序: #include "stdafx.h" #include <string.h> int _tmain(int argc, _TCHAR* argv[]) { i ...

  5. MyBatis实现与插件开发

    分析源码之前也需要源码下载并安装到本地仓库和开发工具中,方便给代码添加注释:安装过程和mybatis源码的安装过程是一样的,这里就不再重复描述了:下载地址:https://github.com/myb ...

  6. TP6.0 一对一模型关联 hasOne

    本文测试关联方法都采用预载入查询 $data = User::with('profile')->select(); halt($data->toArray()); 1. 创建数据表 -- ...

  7. markdown基本语法说明

    作为一个java程序员,要接触的东西很多,时不时 就要学习,最近写文档的时候发现,markdown很有意思,就记录下来,作为一个简单的说明和学习 :    1.标题 # 这是一级标题 ## 这是二级标 ...

  8. webstorm中emmet展开a标签和行内元素不换行的解决办法

    大家好我是木瓜太香,大家在使用 webstorm 编写 html 的时候可能会遇到展开部分标签挨在一起的情况,相信很多小伙伴都想解决这个问题,接下来我们就开始吧! 先来看看我们输入如下 emmet 代 ...

  9. JS -- DOM(文档对象模型)

    认识DOM(文档对象模型) DOM(Document Object Model):定义访问和处理HTML文档的标准方法. DOM 将HTML文档呈现为带有元素.属性和文本的树结构(节点树). < ...

  10. pytest测试框架 -- skip跳过执行测试用例

      跳过执行测试用例 1.@pytest.mark.skip(reason=" ") -- 跳过执行测试函数 可传入一个非必须参数reason表示原因 import pytest@ ...