Python全系列 教程
3567个小节阅读:5929.1k
目录
鸿蒙应用开发
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
Tornado是一个用Python编写的可扩展的、无阻塞的Web应用程序框架和Web服务器。它是由FriendFeed开发使用的;该公司于2009年被Facebook收购,而Tornado
很快就开源了
龙卷风以其高性能着称。它的设计允许处理大量并发连接,Tornado
在设计之初就考虑到了性能因素,旨在解决C10K
(同时处理一万个连接的缩写)问题,这样的设计使得其成为一个拥有非常高性能的框架。此外,它还拥有处理安全性、用户验证、社交网络以及与外部服务(如数据库和网站API)进行异步交互的工具
延伸阅读:C10K问题
基于线程的服务器,如Apache,为了传入的连接,维护了一个操作系统的线程池。Apache会为每个HTTP连接分配线程池中的一个线程,如果所有的线程都处于被占用的状态并且尚有内存可用时,则生成一个新的线程。尽管不同的操作系统会有不同的设置,大多数Linux发布版中都是默认线程堆大小为8MB。Apache的架构在大负载下变得不可预测,为每个打开的连接维护一个大的线程池等待数据极易迅速耗光服务器的内存资源。
为什么会有这么大的负载呢?服务器同时要对许多客户端提供服务,而服务器端的处理流程,只要遇到了I/O操作,往往需要长时间的等待。
整个流程52ms,中间50ms是在等待耗时操作结束,这段时间服务进程的CPU是空闲的,浪费掉了。
换个角度看,是CPU在各个流程间跳来跳去,专门处理那些红色的片段。这种模式下,服务进程有效利用了等待时间,实际花费的只是一头一尾两段真正占用CPU的时间。这样服务进程每秒可以处理的请求可成几十倍的增长。
而这样的模式,就是在一个进程之间同时处理多个协程,充分利用CPU时间,这就是我们需要的异步编程。
而Tornado
就是可以支持异步非堵塞IO模式
实时学习反馈
1. 关于Tornado说法错误的是?
A Tornado是一款可扩展的、无阻塞的Web应用程序框架和Web服务器
B Tornado设置初衷就是高性能
C Tornado支持异步非堵塞IO模式
D Tornado通样是采用多线程编程
答案
1=>D