协程当遇到await的时候,当前协程会被挂起,去执行后面的协程,直到所有协程都挂起或者执行完毕才继续执行
import asyncio
import aiohttp
import time
start = time.time()
async def get(url):
session = aiohttp.ClientSession()
response = await session.get(url)
await response.text()
await session.close()
return response
async def requests():
url = 'https://www.httpbin.org/delay/5'
response = await get(url)
print('success',response)
tasks = [asyncio.ensure_future(requests()) for _ in range(20)]
asyncio.get_event_loop().run_until_complete(asyncio.wait(tasks))
print('close:',time.time()-start)