Python asyncio 模块
实例
使用 asyncio.run() 运行一个简单的协程:
import asyncio
async def main():
print("hello")
await asyncio.sleep(0)
print("world")
asyncio.run(main())
亲自试一试 »
定义和用法
asyncio 模块为并发代码提供事件循环、任务和 I/O 原语。
使用 async/await 编写结构化的异步程序、调度协程以及处理网络、子进程和同步原语。
成员
| 成员 | 描述 |
|---|---|
| all_tasks() | 返回当前事件循环中所有尚未完成的任务的集合。 |
| as_completed() | 等待的任务完成后立即迭代结果。 |
| BoundedSemaphore | 类似于Semaphore,但防止计数器超过初始值。 |
| CancelledError | 任务取消时引发的异常。 |
| Condition | 协调需要等待共享状态改变的协程。 |
| create_subprocess_exec() | 生成一个子进程(exec 形式)并与之异步交互。 |
| create_subprocess_shell() | 使用系统 shell 生成一个子进程。 |
| create_task() | 将协程对象的执行调度为 Task。 |
| current_task() | 返回当前正在运行的任务。 |
| Event | 协程等待信号的同步原语。 |
| gather() | 并发运行多个可等待对象并收集结果。 |
| get_event_loop() | 返回当前事件循环(在 Python 3.10 及更高版本中已弃用;请使用 get_running_loop())。 |
| get_running_loop() | 返回当前正在运行的事件循环。 |
| LifoQueue | 协程生产者/消费者的栈(后进先出)队列。 |
| Lock | 协程互斥锁。 |
| new_event_loop() | 创建并返回一个新的事件循环对象。 |
| open_connection() | 打开一个 TCP 客户端连接。 |
| PriorityQueue | 队列,用于按优先级(值越小优先)检索元素。 |
| Queue | 协程生产者/消费者的先进先出 (FIFO) 队列。 |
| run() | 运行 asyncio 程序的主入口点。 |
| run_coroutine_threadsafe() | 从不同的线程向事件循环提交协程。 |
| Semaphore | 用于限制并发访问的计数信号量。 |
| set_event_loop() | 为当前线程设置当前事件循环。 |
| shield() | 保护一个可等待的对象不被取消(外部等待可以被取消)。 |
| sleep() | 在指定时间后完成的协程。 |
| start_server() | 创建一个 TCP 服务器。 |
| StreamReader | 异步流读取器,用于从网络连接读取数据。 |
| StreamWriter | 异步流写入器,用于向网络连接写入数据。 |
| Task | 用于调度和运行协程的包装器;等待它以获取结果。 |
| timeout() | 异步上下文管理器,用于对await块应用超时。 |
| TimeoutError | 当操作超时时引发异常。 |
| to_thread() | 在单独的线程中运行阻塞函数并等待结果。 |
| wait() | 根据条件(FIRST_COMPLETED/ALL_COMPLETED)等待一组任务完成。 |
| wait_for() | 运行一个可等待的函数并设置超时时间,如果耗时过长则取消它。 |

