随笔分类 -  tornado源码剖析

深入tornado中的http1connection
摘要:前言 tornado中http1connection文件的作用极其重要,他实现了http1.x协议。 本模块基于gen模块和iostream模块实现异步的处理请求或者响应。 阅读本文需要一些基础的http知识。 正文: http协议是建立在tcp基础上的应用层协议,tcp层由TCPServer,IO 阅读全文
posted @ 2017-05-30 10:53 MnCu 阅读(2372) 评论(0) 推荐(0)
深入tornado中的TCPServer
摘要:1 梳理: 应用层的下一层是传输层,而http协议一般是使用tcp的,所以实现tcp的重要性就不言而喻。 由于tornado中实现了ioloop这个反应器以及iostream这个对连接的异步读写,所以tcp就很容易实现异步。 在tornado的tcpserver文件中,实现了TCPServer这个类 阅读全文
posted @ 2017-05-20 21:10 MnCu 阅读(8182) 评论(1) 推荐(1)
深入tornado中的ioLoop
摘要:本文所剖析的tornado源码版本为4.4.2 ioloop是tornado的关键,是他的最底层。 ioloop就是对I/O多路复用的封装,它实现了一个单例,将这个单例保存在IOLoop._instance中 ioloop实现了Reactor模型,将所有要处理的I/O事件注册到一个中心I/O多路复用 阅读全文
posted @ 2017-04-27 16:01 MnCu 阅读(3117) 评论(3) 推荐(2)
深入tornado中的Configurable
摘要:Configurable十分重要! 位于tornado.util文件中,它是一个工厂类。 我们暂且称这个类为 配置类 。 我们暂且约定:该类的子类称之为 直属配置子类 , 该类的孙类、重孙类……称之为 从属配置子类。就像这样: 这个配置类类似于java中的接口,他要求 直属配置子类必须有三个方法,分 阅读全文
posted @ 2017-04-27 14:25 MnCu 阅读(1244) 评论(0) 推荐(0)
深入tornado中的IOStream
摘要:IOStream对tornado的高效起了很大的作用,他封装了socket的非阻塞IO的读写操作。大体上可以这么说,当连接建立后,服务端与客户端的请求响应的读写都是基于IOStream的,也就是说:IOStream是用来处理对连接的读写,当然IOStream是异步的读写而且可以有很多花样的读写。 接 阅读全文
posted @ 2017-04-18 21:06 MnCu 阅读(3111) 评论(0) 推荐(0)
深入tornado中的协程
摘要:tornado使用了单进程(当然也可以多进程) + 协程 + I/O多路复用的机制,解决了C10K中因为过多的线程(进程)的上下文切换 而导致的cpu资源的浪费。 tornado中的I/O多路复用前面已经讲过了。本文不做详细解释。 来看一下tornado中的协程模块:tornado.gen: tor 阅读全文
posted @ 2017-04-10 18:49 MnCu 阅读(6906) 评论(0) 推荐(0)