低级 API 索引

本页列出了所有低级 asyncio API。

获得事件循环

asyncio.get_running_loop() The preferred function to get the running event loop.
asyncio.get_event_loop() Get an event loop instance (current or via the policy).
asyncio.set_event_loop() Set the event loop as current via the current policy.
asyncio.new_event_loop() 创建新的事件循环。

范例

事件循环方法

See also the main documentation section about the event loop methods .

Lifecycle

loop.run_until_complete() Run a Future/Task/awaitable until complete.
loop.run_forever() Run the event loop forever.
loop.stop() 停止事件循环。
loop.close() 关闭事件循环。
loop.is_running() 返回 True if the event loop is running.
loop.is_closed() 返回 True if the event loop is closed.
await loop.shutdown_asyncgens() Close asynchronous generators.

调试

loop.set_debug() Enable or disable the debug mode.
loop.get_debug() Get the current debug mode.

Scheduling Callbacks

loop.call_soon() Invoke a callback soon.
loop.call_soon_threadsafe() A thread-safe variant of loop.call_soon() .
loop.call_later() Invoke a callback after the given time.
loop.call_at() Invoke a callback at the given time.

线程/进程池

await loop.run_in_executor() Run a CPU-bound or other blocking function in a concurrent.futures executor.
loop.set_default_executor() Set the default executor for loop.run_in_executor() .

任务和未来

loop.create_future() 创建 Future 对象。
loop.create_task() Schedule coroutine as a Task .
loop.set_task_factory() Set a factory used by loop.create_task() to create Tasks .
loop.get_task_factory() Get the factory loop.create_task() uses to create Tasks .

DNS

await loop.getaddrinfo() Asynchronous version of socket.getaddrinfo() .
await loop.getnameinfo() Asynchronous version of socket.getnameinfo() .

网络和 IPC (进程间通信)

await loop.create_connection() Open a TCP connection.
await loop.create_server() Create a TCP server.
await loop.create_unix_connection() Open a Unix socket connection.
await loop.create_unix_server() Create a Unix socket server.
await loop.connect_accepted_socket() 包裹 socket (transport, protocol) 对。
await loop.create_datagram_endpoint() Open a datagram (UDP) connection.
await loop.sendfile() Send a file over a transport.
await loop.start_tls() Upgrade an existing connection to TLS.
await loop.connect_read_pipe() Wrap a read end of a pipe into a (transport, protocol) 对。
await loop.connect_write_pipe() Wrap a write end of a pipe into a (transport, protocol) 对。

套接字

await loop.sock_recv() Receive data from the socket .
await loop.sock_recv_into() Receive data from the socket into a buffer.
await loop.sock_sendall() Send data to the socket .
await loop.sock_connect() 连接 socket .
await loop.sock_accept() Accept a socket 连接。
await loop.sock_sendfile() Send a file over the socket .
loop.add_reader() Start watching a file descriptor for read availability.
loop.remove_reader() Stop watching a file descriptor for read availability.
loop.add_writer() Start watching a file descriptor for write availability.
loop.remove_writer() Stop watching a file descriptor for write availability.

Unix 信号

loop.add_signal_handler() Add a handler for a signal .
loop.remove_signal_handler() Remove a handler for a signal .

子进程

loop.subprocess_exec() Spawn a subprocess.
loop.subprocess_shell() Spawn a subprocess from a shell command.

错误处理

loop.call_exception_handler() Call the exception handler.
loop.set_exception_handler() Set a new exception handler.
loop.get_exception_handler() Get the current exception handler.
loop.default_exception_handler() The default exception handler implementation.

范例

传输

All transports implement the following methods:

transport.close() Close the transport.
transport.is_closing() 返回 True if the transport is closing or is closed.
transport.get_extra_info() Request for information about the transport.
transport.set_protocol() Set a new protocol.
transport.get_protocol() Return the current protocol.

Transports that can receive data (TCP and Unix connections, pipes, etc). Returned from methods like loop.create_connection() , loop.create_unix_connection() , loop.connect_read_pipe() , etc:

Read Transports

transport.is_reading() 返回 True if the transport is receiving.
transport.pause_reading() Pause receiving.
transport.resume_reading() Resume receiving.

Transports that can Send data (TCP and Unix connections, pipes, etc). Returned from methods like loop.create_connection() , loop.create_unix_connection() , loop.connect_write_pipe() , etc:

Write Transports

transport.write() Write data to the transport.
transport.writelines() Write buffers to the transport.
transport.can_write_eof() 返回 True if the transport supports sending EOF.
transport.write_eof() Close and send EOF after flushing buffered data.
transport.abort() Close the transport immediately.
transport.get_write_buffer_size() Return high and low water marks for write flow control.
transport.set_write_buffer_limits() Set new high and low water marks for write flow control.

Transports returned by loop.create_datagram_endpoint() :

数据报传输

transport.sendto() Send data to the remote peer.
transport.abort() Close the transport immediately.

Low-level transport abstraction over subprocesses. Returned by loop.subprocess_exec() and loop.subprocess_shell() :

子进程传输

transport.get_pid() Return the subprocess process id.
transport.get_pipe_transport() Return the transport for the requested communication pipe ( stdin , stdout ,或 stderr ).
transport.get_returncode() Return the subprocess return code.
transport.kill() 杀除子进程。
transport.send_signal() Send a signal to the subprocess.
transport.terminate() 停止子进程。
transport.close() Kill the subprocess and close all pipes.

协议

Protocol classes can implement the following callback methods :

callback connection_made() Called when a connection is made.
callback connection_lost() Called when the connection is lost or closed.
callback pause_writing() Called when the transport’s buffer goes over the high water mark.
callback resume_writing() Called when the transport’s buffer drains below the low water mark.

Streaming Protocols (TCP, Unix Sockets, Pipes)

callback data_received() Called when some data is received.
callback eof_received() Called when an EOF is received.

缓冲流协议

callback get_buffer() Called to allocate a new receive buffer.
callback buffer_updated() Called when the buffer was updated with the received data.
callback eof_received() Called when an EOF is received.

数据报协议

callback datagram_received() Called when a datagram is received.
callback error_received() Called when a previous send or receive operation raises an OSError .

子进程协议

callback pipe_data_received() Called when the child process writes data into its stdout or stderr pipe.
callback pipe_connection_lost() Called when one of the pipes communicating with the child process is closed.
callback process_exited() Called when the child process has exited.

事件循环策略

Policies is a low-level mechanism to alter the behavior of functions like asyncio.get_event_loop() . See also the main policies section 了解更多细节。

Accessing Policies

asyncio.get_event_loop_policy() 返回当前进程范围的策略。
asyncio.set_event_loop_policy() Set a new process-wide policy.
AbstractEventLoopPolicy Base class for policy objects.

内容表

上一话题

高级 API 索引

下一话题

采用 asyncio 开发

本页