老师,访问同一个请求的并发问题

来源:5-3 tornado中的url配置

胖虎dad

2019-12-14

参照老师5-2课程中,将time.sleep改为非阻塞await asyncio.sleep。并发访问不同接口时发现确实可以实现异步效果,两个并发请求几乎同时完成。但访问同一个请求接口时,还是跟同步效果一样,一个请求结束后,才开始执行第二个请求。这是为什么呢?难道是访问不同请求接口时,每个请求接口生成一个协程task放入事件循环中,但同一个接口,同一时刻就只允许一个task放入事件循环中?

写回答

2回答

慕少4125144

2020-07-27

我做实验也是同样的结果,tornado官网的解释:

https://www.tornadoweb.org/en/stable/faq.html


确实是浏览器机制的问题,如果换成打开两个cmd用curl测试,就是没问题的

或者按照官网给的测试方法也是没有问题的

老师的可能测试方法不一样

0
1
bobby
赞一个,不同的浏览器可能会有不同的策略
2020-07-30
共1条回复

bobby

2019-12-15

你的代码发上来我试试 两个接口即使一样也应该能同时完成

0
4
bobby
回复
胖虎dad
不会的 因为我昨天已经试过了
2019-12-18
共4条回复

Tornado从入门到进阶 打造支持高并发的技术论坛

异步IO并发编程/Form,ORM/aiomysql、peewee-async/epoll

593 学习 · 350 问题

查看课程