单进程单线程。
import tornado.ioloop import tornado.web class MainHandler(tornado.web.RequestHandler): def get(self): time.sleep(10) return "ok" application = tornado.web.Application([ (r"/", MainHandler), ]) if __name__ == "__main__": application.listen(58000) tornado.ioloop.IOLoop.instance().start()
异步写法
#!/bin/env python # -*- coding:utf-8 -*- # Date: 2017-01-02 # Author: simonzhang # web: www.simonzhang.net # Email: simon-zzm@163.com ## END INIT INFO import tornado.ioloop import tornado.web import tornado.gen from tornado.concurrent import run_on_executor # 这个并发库在python3自带;在python2需要安装pip install futures from concurrent.futures import ThreadPoolExecutor import time class MainHandler(tornado.web.RequestHandler): #executor 是局部变量 不是全局的 executor = ThreadPoolExecutor(5) @tornado.web.asynchronous @tornado.gen.coroutine def get(self): res = yield self.sleep() self.write("wait. %s" % res) # 必须要结束 self.finish() @run_on_executor def sleep(self): time.sleep(10) return "ok" application = tornado.web.Application([ (r"/", MainHandler), ]) if __name__ == "__main__": application.listen(58000) tornado.ioloop.IOLoop.instance().start()
来源:http://www.dongwm.com/archives/shi-yong-tornadorang-ni-de-qing-qiu-yi-bu-fei-zu-sai/
发表评论