如何高效整理asyncio编程学习笔记?
- 内容介绍
- 文章标签
- 相关推荐
本文共计496个文字,预计阅读时间需要2分钟。
目录+ greelet | yield | asyncio+ async | await+ Task对象+ asyncio.Future对象+ 异步生成器+ 异步上下文管理器
目录
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();
本文共计496个文字,预计阅读时间需要2分钟。
目录+ greelet | yield | asyncio+ async | await+ Task对象+ asyncio.Future对象+ 异步生成器+ 异步上下文管理器
目录
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();

