目录 greelet|yield|asyncio 1 async|await 4 Task对象 9 asyncio.Future对象 12 异步迭代器 16 异步上下文管理器 17
目录
greelet|yield|asyncio 1
async|await 4
Task对象 9
asyncio.Future对象 12
异步迭代器 16
异步上下文管理器 17
uvloop|FastAPI 19
greelet|yield|asyncio
遇到IO会自动切换;
async|await
普通方式:
协程方式(异步)
asyncio.run(func()) # py3.7用此句替代事件循环
Task对象
会立即在事件循环中创建任务对象,使多个任务并发地运行;
示例2、3常用:
task_list写在函数内,在执行asyncio.run()时事件循环已经创建了,在事件循环内创建任务;
task_list写在外面,task_list里只能放协程对象,asyncio.wait()会创建事件循环,在事件循环内创建任务;
asyncio.Future对象
基本不用;
异步迭代器
__aiter__()
__anext__()
async for
async for语句必须写在协程函数内;
异步上下文管理器
__aenter__()
__aexit__()
async with
async with语句必须写在协程函数内;
uvloop|FastAPI
luffy是该代码的文件名,app是代码中的app=FastAPI();