# play-tornado **Repository Path**: catroll/play-tornado ## Basic Information - **Project Name**: play-tornado - **Description**: 吃透 Tornado - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2018-09-18 - **Last Updated**: 2020-12-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Tornado 源码分析 一直在用 Tornado,但是并没有深入理解它的内部实现机制。 1. Tornado 是解决了什么问题? 2. Tornado 是怎么解决这些问题的? 3. 相对于其他方案,Tornado 有什么明显优势(要有明确的、可检验的实验代码)? 4. Tornado 有那些思想和实现可以被今后的开发工作借鉴? ## 定义 首先: 就我当前的使用而言,Tornado 是一个协程库,是一个 HTTP 应用服务器。 维基百科上的定义: > Tornado is a scalable, non-blocking web server and web application framework written in Python. ## 发布历史 - v6.0.2:Mar 23, 2019 - v6.0.1:Mar 3, 2019 - v6.0:Mar 1, 2019 - v5.1.1:Sep 16, 2018 - v5.1:July 12, 2018 - v5.0.2:Apr 7, 2018 - v5.0.1:Mar 18, 2018 - v5.0:Mar 5, 2018 - v4.5.3:Jan 6, 2018 - v4.5.2:Aug 27, 2017 - v4.5.1:Apr 20, 2017 - v4.5:Apr 16, 2017 - v4.4.3:Mar 30, 2017 - v4.4.2:Oct 1, 2016 - v4.4.1:Jul 23, 2016 - v4.4:Jul 15, 2016 - v4.3:Nov 6, 2015 - v4.2.1:Jul 17, 2015 - v4.2:May 26, 2015 - v4.1:Feb 7, 2015 - v4.0.2:Sept 10, 2014 - v4.0.1:Aug 12, 2014 - v4.0:July 15, 2014 - v3.2.2:June 3, 2014 - v3.2.1:May 5, 2014 - v3.2:Jan 14, 2014 - v3.1.1:Sep 1, 2013 - v3.1:Jun 15, 2013 - v3.0.2:Jun 2, 2013 - v3.0.1:Apr 8, 2013 - v3.0:Mar 29, 2013 - v2.4.1:Nov 24, 2012 - v2.4:Sep 4, 2012 - v2.3:May 31, 2012 - v2.2.1:Apr 23, 2012 - v2.2:Jan 30, 2012 - v2.1.1:Oct 4, 2011 - v2.1:Sep 20, 2011 - v2.0:Jun 21, 2011 - v1.2.1:Mar 3, 2011 - v1.2:Feb 20, 2011 - v1.1.1:Feb 8, 2011 - csrf [security] - v1.1:Sep 7, 2010 - **stack_context** - v1.0.1:Aug 13, 2010 - cookie [security] - **v1.0**:July 22, 2010 ## 原理 1. I/O 多路复用 1. 事件循环 较早期采用 epoll 和 Python 生成器,现在采用原生的 asyncio。 相关生态中还有底层采用 Twisted 的版本。