低级 API 索引 — Python 文档

来自菜鸟教程
Python/docs/3.9/library/asyncio-llapi-index
跳转至:导航、​搜索

低级 API 索引

此页面列出了所有低级 asyncio API。

获取事件循环

asyncio.get_running_loop() preferred 函数获取正在运行的事件循环。
asyncio.get_event_loop() 获取事件循环实例(当前或通过策略)。
asyncio.set_event_loop() 通过当前策略将事件循环设置为当前。
asyncio.new_event_loop() 创建一个新的事件循环。

例子


事件循环方法

另请参阅有关 事件循环方法 的主要文档部分。

生命周期

loop.run_until_complete() 运行 Future/Task/awaitable 直到完成。
loop.run_forever() 永远运行事件循环。
loop.stop() 停止事件循环。
loop.close() 关闭事件循环。
loop.is_running() 如果事件循环正在运行,则返回 True
loop.is_closed() 如果事件循环关闭,则返回 True
await loop.shutdown_asyncgens() 关闭异步生成器。

调试

loop.set_debug() 启用或禁用调试模式。
loop.get_debug() 获取当前的调试模式。

调度回调

loop.call_soon() 尽快调用回调。
loop.call_soon_threadsafe() loop.call_soon() 的线程安全变体。
loop.call_later() 在给定时间 之后调用回调
loop.call_at() 在给定时间调用回调

线程/进程池

await loop.run_in_executor() concurrent.futures 执行器中运行 CPU 绑定或其他阻塞函数。
loop.set_default_executor() loop.run_in_executor() 设置默认执行器。

任务和未来

loop.create_future() 创建一个 Future 对象。
loop.create_task() 将协程安排为 任务
loop.set_task_factory() 设置 loop.create_task() 使用的工厂以创建 Tasks
loop.get_task_factory() 获取工厂 loop.create_task() 用于创建 Tasks

域名系统

await loop.getaddrinfo() socket.getaddrinfo() 的异步版本。
await loop.getnameinfo() socket.getnameinfo() 的异步版本。

网络和IPC

await loop.create_connection() 打开一个 TCP 连接。
await loop.create_server() 创建一个 TCP 服务器。
await loop.create_unix_connection() 打开一个 Unix 套接字连接。
await loop.create_unix_server() 创建一个 Unix 套接字服务器。
await loop.connect_accepted_socket() 插座 包裹成 (transport, protocol) 对。
await loop.create_datagram_endpoint() 打开数据报 (UDP) 连接。
await loop.sendfile() 通过传输发送文件。
await loop.start_tls() 将现有连接升级到 TLS。
await loop.connect_read_pipe() 将管道的读取端包装成 (transport, protocol) 对。
await loop.connect_write_pipe() 将管道的写端包装成 (transport, protocol) 对。

插座

await loop.sock_recv() 套接字 接收数据。
await loop.sock_recv_into() socket 接收数据到缓冲区。
await loop.sock_sendall() 将数据发送到 套接字
await loop.sock_connect() 连接 插座
await loop.sock_accept() 接受 套接字 连接。
await loop.sock_sendfile() 通过 套接字 发送文件。
loop.add_reader() 开始观察文件描述符以获取读取可用性。
loop.remove_reader() 停止监视文件描述符以获取读取可用性。
loop.add_writer() 开始观察文件描述符以了解写入可用性。
loop.remove_writer() 停止监视文件描述符以获取写入可用性。

Unix 信号

loop.add_signal_handler() 信号 添加处理程序。
loop.remove_signal_handler() 删除 信号 的处理程序。

子流程

loop.subprocess_exec() 产生一个子进程。
loop.subprocess_shell() 从 shell 命令生成子进程。

错误处理

loop.call_exception_handler() 调用异常处理程序。
loop.set_exception_handler() 设置一个新的异常处理程序。
loop.get_exception_handler() 获取当前异常处理程序。
loop.default_exception_handler() 默认异常处理程序实现。

例子


运输

所有传输都实现以下方法:

transport.close() 关闭运输。
transport.is_closing() 如果传输正在关闭或已关闭,则返回 True
transport.get_extra_info() 请求有关运输的信息。
transport.set_protocol() 设置新协议。
transport.get_protocol() 返回当前协议。

可以接收数据的传输(TCP 和 Unix 连接、管道等)。 从 loop.create_connection()loop.create_unix_connection()loop.connect_read_pipe() 等方法返回:

读取传输

transport.is_reading() 如果传输正在接收,则返回 True
transport.pause_reading() 暂停接收。
transport.resume_reading() 恢复接收。

可以发送数据的传输(TCP 和 Unix 连接、管道等)。 从 loop.create_connection()loop.create_unix_connection()loop.connect_write_pipe() 等方法返回:

写传输

transport.write() 将数据写入传输。
transport.writelines() 将缓冲区写入传输。
transport.can_write_eof() 如果传输支持发送 EOF,则返回 True
transport.write_eof() 刷新缓冲数据后关闭并发送 EOF。
transport.abort() 立即关闭运输。
transport.get_write_buffer_size() 为写流控制返回高低水位标记。
transport.set_write_buffer_limits() 为写流控制设置新的高低水位标记。

loop.create_datagram_endpoint() 返回的传输:

数据报传输

transport.sendto() 将数据发送到远程对等方。
transport.abort() 立即关闭运输。

子流程上的低级传输抽象。 由 loop.subprocess_exec()loop.subprocess_shell() 返回:

子流程传输

transport.get_pid() 返回子进程进程 ID。
transport.get_pipe_transport() 返回请求的通信管道的传输(stdinstdoutstderr)。
transport.get_returncode() 返回子进程返回码。
transport.kill() 杀死子进程。
transport.send_signal() 向子进程发送信号。
transport.terminate() 停止子进程。
transport.close() 终止子进程并关闭所有管道。


协议

协议类可以实现以下回调方法

callback connection_made() 建立连接时调用。
callback connection_lost() 当连接丢失或关闭时调用。
callback pause_writing() 当传输的缓冲区超过高水位线时调用。
callback resume_writing() 当传输的缓冲区排放到低水位线以下时调用。

流协议(TCP、Unix 套接字、管道)

callback data_received() 当接收到一些数据时调用。
callback eof_received() 收到 EOF 时调用。

缓冲流协议

callback get_buffer() 调用以分配新的接收缓冲区。
callback buffer_updated() 在使用接收到的数据更新缓冲区时调用。
callback eof_received() 收到 EOF 时调用。

数据报协议

callback datagram_received() 收到数据报时调用。
callback error_received() 当先前的发送或接收操作引发 OSError 时调用。

子进程协议

callback pipe_data_received() 当子进程将数据写入其 stdoutstderr 管道时调用。
callback pipe_connection_lost() 当与子进程通信的管道之一关闭时调用。
callback process_exited() 当子进程退出时调用。


事件循环策略

策略是一种低级机制,用于改变 asyncio.get_event_loop() 等函数的行为。 有关更多详细信息,另请参阅主要 政策部分

访问策略

asyncio.get_event_loop_policy() 返回当前进程范围的策略。
asyncio.set_event_loop_policy() 设置新的流程范围策略。
AbstractEventLoopPolicy 策略对象的基类。