外观
补充
asyncio 模块的常用方法和类
| 方法/类 | 功能描述 |
|---|---|
asyncio.run(coroutine) | 用于运行最高层级的协程,创建事件循环并执行协程,直到其完成。 |
asyncio.create_task(coroutine) | 创建一个任务(Task),该任务表示一个待执行的协程,任务会被调度到事件循环中运行。 |
asyncio.ensure_future(coroutine) | 将协程转换为 Future 对象并将其调度到事件循环,功能与 create_task 类似,但允许传递未来的 Future 对象。 |
asyncio.gather(*coroutines) | 并行运行多个协程并收集其结果。返回一个 Future 对象,可以用 await 等待多个协程的执行结果。 |
asyncio.wait(futures, timeout=None) | 等待多个 Future 对象中的某些完成,返回一个元组,包括完成的任务和未完成的任务。 |
asyncio.sleep(seconds) | 异步休眠,非阻塞,等待指定的时间(秒)。该方法通常用于模拟 I/O 操作或延时。 |
asyncio.get_event_loop() | 获取当前线程的事件循环对象。该方法在 Python 3.10 之前是常用的,建议使用 asyncio.get_running_loop()。 |
asyncio.get_running_loop() | 获取当前运行中的事件循环,通常用于协程中。 |
asyncio.run_until_complete(future) | 在事件循环中运行直到 Future 对象完成,常用于 get_event_loop() 中。 |
asyncio.to_thread(func, *args) | 将阻塞性函数放入线程池中异步执行,适用于不支持异步的 I/O 操作(如数据库查询、文件读写)。 |
asyncio.CancelledError | 当任务被取消时抛出的异常。 |
asyncio.Future | Future 对象表示尚未完成的异步操作,它是一个低级别的对象,可以显式控制任务的执行结果。 |
asyncio.Task | Task 类继承自 Future,表示一个正在执行的协程,允许通过 await 获取其结果。 |
asyncio.Event | 用于在协程之间同步的事件对象。可以通过 set() 或 clear() 来控制事件的状态,并在其他协程中通过 wait() 等待事件的发生。 |
asyncio.Queue | 异步队列对象,允许多个生产者和消费者协作,提供了 put() 和 get() 方法,用于在异步环境下的任务调度和同步。 |
asyncio.Lock | 异步锁,用于在多个协程之间控制资源的访问。不同于同步锁,它不会阻塞事件循环。 |
asyncio.Semaphore | 异步信号量,限制同时访问某些资源的协程数量,类似于锁,但允许指定同时执行的最大任务数量。 |
asyncio.Condition | 异步条件变量,用于在协程之间同步操作,通常与 Lock 或 Semaphore 一起使用,以确保条件满足时才继续执行。 |
asyncio.StreamReader | 用于处理异步读取流的类,通常与 StreamWriter 一起使用,用于异步处理流式数据(如网络流)。 |
asyncio.StreamWriter | 用于处理异步写入流的类,通常与 StreamReader 一起使用,用于异步写入流式数据(如网络流)。 |
asyncio.SubprocessProtocol | 用于管理和控制子进程的协议类,能够与子进程进行异步交互。 |
asyncio.SubprocessStreamReader | 用于从子进程的标准输出或标准错误流中异步读取数据。 |
asyncio.SubprocessStreamWriter | 用于向子进程的标准输入流中异步写入数据。 |
asyncio.shield(coroutine) | 用于防止任务在执行过程中被取消。 |