Tornado 和现在的主流 Web 服务器框架(包括大多数 Python 的框架)有着明显的区别:它是非阻塞式服务器,而且速度相当快。得利于其 非阻塞的方式和对 epoll 的运用,Tornado 每秒可以处理数以千计的连接,这意味着对于实时 Web 服务来说,Tornado 是一个理想的 Web 框架。
一、Tornado的两种模式使用
1.同步阻塞模式
由于doing中sleep10秒,此时其他连接将被阻塞,必须等这次请求完成后其他请求才能连接成功。
1 import tornado.ioloop 2 import tornado.web 3 4 5 class MainHandler(tornado.web.RequestHandler): 6 def get(self): 7 self.doing() 8 self.write("Hello, world") 9 10 def doing(self): 11 time.sleep(10) 12 13 14 application = tornado.web.Application([ 15 (r"/index", MainHandler), 16 ]) 17 18 19 if __name__ == "__main__": 20 application.listen(8888) 21 tornado.ioloop.IOLoop.instance().start()