低级 API 索引 — Python 文档
来自菜鸟教程
Python/docs/3.8/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()
|
默认异常处理程序实现。 |
例子
- 使用 asyncio.get_event_loop() 和 loop.run_forever()。
- 使用 loop.call_later()。
- 使用
loop.create_connection()
实现 回声客户端 。 - 使用
loop.create_connection()
到连接一个插座。 - 使用 add_reader() 观察读取事件的 FD 。
- 使用 loop.add_signal_handler()。
- 使用 loop.subprocess_exec()。
运输
所有传输都实现以下方法:
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()
|
返回请求的通信管道的传输(stdin、stdout 或 stderr)。 |
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()
|
当子进程将数据写入其 stdout 或 stderr 管道时调用。 |
callback pipe_connection_lost()
|
当与子进程通信的管道之一关闭时调用。 |
callback process_exited()
|
当子进程退出时调用。 |
事件循环策略
策略是一种低级机制,用于改变 asyncio.get_event_loop() 等函数的行为。 有关更多详细信息,另请参阅主要 政策部分 。
访问策略
asyncio.get_event_loop_policy()
|
返回当前进程范围的策略。 |
asyncio.set_event_loop_policy()
|
设置新的流程范围策略。 |
AbstractEventLoopPolicy
|
策略对象的基类。 |