Asyncio 是 Python 的一个库,用于编写单线程并发代码,利用 async/await 语法。它非常适合于网络应用,比如 Web 服务器和 Web 客户端。

基础概念

  • 协程(Coroutine): 是一个轻量级的线程,可以被挂起和恢复,非常适合处理 I/O 密集型任务。
  • 事件循环(Event Loop): 负责执行协程,管理异步事件。
  • 任务(Task): 是对协程的一个封装,它包含了协程的执行状态。

快速开始

以下是一个简单的例子,展示如何使用 asyncio 创建一个 Web 服务器:

import asyncio

async def handle_request(reader, writer):
    data = await reader.read(100)
    writer.write(data)
    await writer.drain()
    writer.close()

async def run_server():
    server = await asyncio.start_server(handle_request, '127.0.0.1', 8888)
    async with server:
        await server.serve_forever()

asyncio.run(run_server())

图片示例

协程示例

中心图:Coroutine

Coroutine

事件循环

中心图:EventLoop

EventLoop

扩展阅读

希望这个教程能帮助你更好地理解 asyncio!