文章分类 -  asyncio & 异步编程

摘要:此种对象通过定义 __aenter__() 和 __aexit__() 方法来对 async with 语句中的环境进行控制。由 PEP 492 引入。 import asyncio class AsyncContextManager: def __init__(self): self.conn = 阅读全文
posted @ 2021-12-19 23:02 下个ID见 阅读(31) 评论(0) 推荐(0)
摘要:什么是异步迭代器 实现了 __aiter__() 和 __anext__() 方法的对象。__anext__ 必须返回一个 awaitable 对象。async for 会处理异步迭代器的 __anext__() 方法所返回的可等待对象,直到其引发一个 StopAsyncIteration 异常。由 阅读全文
posted @ 2021-12-19 23:01 下个ID见 阅读(34) 评论(0) 推荐(0)
摘要:使用线程池、进程池实现异步操作时用到的对象。 import time from concurrent.futures import Future from concurrent.futures.thread import ThreadPoolExecutor from concurrent.futu 阅读全文
posted @ 2021-12-19 23:01 下个ID见 阅读(31) 评论(0) 推荐(0)
摘要:asyncio中的Future对象是一个相对更偏向底层的可对象,通常我们不会直接用到这个对象,而是直接使用Task对象来完成任务的并和状态的追踪。( Task 是 Futrue的子类 ) Future为我们提供了异步编程中的 最终结果 的处理(Task类也具备状态处理的功能)。 示例1: async 阅读全文
posted @ 2021-12-18 23:18 下个ID见 阅读(461) 评论(0) 推荐(0)
摘要:Tasks用于并发调度协程,通过asyncio.create_task(协程对象)的方式创建Task对象,这样可以让协程加入事件循环中等待被调度执行。除了使用 asyncio.create_task() 函数以外,还可以用低层级的 loop.create_task() 或 ensure_future 阅读全文
posted @ 2021-12-18 23:17 下个ID见 阅读(42) 评论(0) 推荐(0)
摘要:协程函数,定义形式为 async def 的函数。 协程对象,调用 协程函数 所返回的对象。 # 定义一个协程函数 async def func(): pass # 调用协程函数,返回一个协程对象 result = func() 注意:调用协程函数时,函数内部代码不会执行,只是会返回一个协程对象。 阅读全文
posted @ 2021-12-18 23:16 下个ID见 阅读(41) 评论(0) 推荐(0)
摘要:协程不是计算机提供,程序员人为创造。 协程(Coroutine),也可以被称为微线程,是一种用户态内的上下文切换技术。简而言之,其实就是通过一个线程实现代码块相互切换执行。例如: def func1(): print(1) ... print(2) def func2(): print(3) ... 阅读全文
posted @ 2021-12-17 20:29 下个ID见 阅读(17) 评论(0) 推荐(0)