在 5-2 tornado中为什么不能写同步的方法 中
告诉我们使用async 不使用同步的方法,但是我运行了这段代码
1.两个网页同时访问 / ------>第一个5秒 第二个10秒返回
2.一个/ 一个/2/ ,第一个五秒,第二个再第一个返回后,马上返回
经检测,加上async 也是同步的方法啊
我理解的效果应该是这样的
1.两个网页同时访问 / ------>第一个5秒 第二个5秒返回
2.一个/ 一个/2/ ,第一个五秒,第二个访问的时候,立马返回,第一个sleep并不会阻塞其他访问。
这是课程的代码
import time
from tornado import web
import tornado
web.URLSpec
class MainHandler(web.RequestHandler):
#当客户端发起不同的http方法的时候, 只需要重载handler中的对应的方法即可
async def get(self, *args, **kwargs):
time.sleep(5)
self.write("hello world")
class MainHandler2(web.RequestHandler):
#当客户端发起不同的http方法的时候, 只需要重载handler中的对应的方法即可
async def get(self, *args, **kwargs):
self.write("hello world2")
if __name__ == "__main__":
app = web.Application([
("/", MainHandler),
("/2/", MainHandler2)
], debug=True)
app.listen(8888)
`在这里输入代码` tornado.ioloop.IOLoop.current().start()