Asyncio 是 Python 中用于编写单线程并发代码的库。它提供了使用协程(coroutines)和事件循环(event loops)的高级接口,使得你可以轻松地编写高性能的网络应用。
快速开始
要开始使用 asyncio,你需要导入 asyncio 库,并创建一个协程。
import asyncio
async def main():
print('Hello, world!')
# 运行协程
asyncio.run(main())
协程(Coroutines)
协程是 asyncio 的核心。它们允许你在程序的不同部分之间切换执行,而不需要使用多线程或多进程。
async def hello_world():
print('Hello, world!')
async def main():
await hello_world()
asyncio.run(main())
事件循环(Event Loops)
事件循环是 asyncio 的另一个核心组件。它负责处理协程、I/O 操作和其他系统事件。
import asyncio
async def main():
loop = asyncio.get_running_loop()
await loop.run_in_executor(None, expensive_io_function)
asyncio.run(main())
异步网络编程
asyncio 提供了异步网络编程的接口,包括 TCP、UDP、SSL 和 WebSocket。
import asyncio
async def tcp_echo_client(host, port):
reader, writer = await asyncio.open_connection(host, port)
print(f'Sent: {data}')
data = await reader.read(100)
print(f'Received: {data.decode()}')
writer.close()
await writer.wait_closed()
asyncio.run(tcp_echo_client('127.0.0.1', 8888))
更多内容
想要了解更多关于 asyncio 的内容,请访问 Python 官方文档。
asyncio 示例