Loading

摘要: python中操作mysql连接、操作、断开都是网络IO #安装支持异步aiomysql的模块 pip3 install aiomysql async def execute(): # 网络IO操作,连接数据库,遇到IO切换任务 conn = await aiomysql.connect('host 阅读全文
posted @ 2022-08-21 23:18 木子七 阅读(53) 评论(0) 推荐(0) 编辑
摘要: 在使用Python代码操作redis时候,连接、操作、断开都是网络IO #安装支持异步redis的模块 pip3 install aioredis async def execute(address, password): # 网络IO操作:创建redis连接 redis = await aiore 阅读全文
posted @ 2022-08-21 23:12 木子七 阅读(56) 评论(0) 推荐(0) 编辑
摘要: uvloop是asyncio的事件循环的替代方案,性能高于默认asyncio的事件循环的效率,相当于提升两倍,效率可以比肩Go pip3 install uvloop import asyncio import uvloop # 使用uvloop替代原因asyncio loop asyncio.se 阅读全文
posted @ 2022-08-21 23:03 木子七 阅读(31) 评论(0) 推荐(0) 编辑
摘要: 对象通过定义__aenter__()和__aexit__()方法对async with语句进行控制 class AsyncConetxtManager: def __init__(self): self.conn = '' async def do_something(self): return ' 阅读全文
posted @ 2022-08-21 22:57 木子七 阅读(28) 评论(0) 推荐(0) 编辑
摘要: 异步迭代器 实现了__aiter__()和__anext__()方法的对象 __anext__()必须返回一个awaitable对象 async for会处理异步迭代器的__anext__()方法返回的可等待对象,直到引发StopAsyncIteration异常 异步可迭代对象 可在async fo 阅读全文
posted @ 2022-08-21 22:47 木子七 阅读(34) 评论(0) 推荐(0) 编辑
摘要: import asyncio import requests async def download_image(url): # 发送请求下载图片,遇到网络下载图片时候的IO请求,自动切换其他任务 print('开始下载', url) loop = asyncio.get_event_loop() # 阅读全文
posted @ 2022-08-21 22:38 木子七 阅读(27) 评论(0) 推荐(0) 编辑
摘要: asyncio.Future对象 Future是Task类的基类 Task对象内部await结果的处理是基于Future对象来的 async def main(): # 获取当前事件循环 loop = asyncio.get_running_loop() # 创建一个任务(Future对象) fut 阅读全文
posted @ 2022-08-21 22:26 木子七 阅读(28) 评论(0) 推荐(0) 编辑
摘要: Task对象 用于调度或并发协程对象 在事件循环中可以添加多个任务 创建task对象三种方式 创建task对象可以让协程加入事件循环中等待被调度执行 3.7版本之后加入asyncio.create_task方式 在之前的版本可以使用低层级的asyncio.ensure_future 不建议手动实例化 阅读全文
posted @ 2022-08-21 21:53 木子七 阅读(48) 评论(0) 推荐(0) 编辑