我正在玩aiohttp
lib,试图创建一个简单的异步处理程序,该处理程序先休眠然后返回。
import asyncio
from aiohttp import web
async def handle(request):
print('before sleep')
await asyncio.sleep(3)
print(' after sleep')
return web.Response(text='')
app = web.Application()
app.add_routes([
web.get('/', handle),
])
web.run_app(app)
然后我同时在几个Chome选项卡中打开Web服务器。
预期的行为是在控制台中随机打印,如下所示:
before sleep
before sleep
before sleep
after sleep
before sleep
after sleep
after sleep
after sleep
无论如何,我在控制台中看到的都是完美的同步执行,我的请求被一个接一个地处理:
before sleep
after sleep
before sleep
after sleep
before sleep
after sleep
before sleep
after sleep
我编写处理程序的方式有什么问题?