什么是 asyncio

asyncio 是 Python 3.4 引入的异步 I/O 框架,用于编写单线程并发的代码。它基于协程(coroutine)和事件循环(event loop)实现非阻塞操作,适合处理高并发网络请求或IO密集型任务。

核心概念

  • 协程:通过 async def 定义,用 await 关键字进行协作式暂停
  • 事件循环:驱动异步程序运行的核心机制 asyncio.get_event_loop()
  • 异步函数:使用 async 关键字修饰的函数,需配合 await 调用
  • 任务调度:通过 asyncio.create_task()loop.create_task() 分配工作
asyncio_event_loop

快速上手

import asyncio

async def say_hello():
    print("Hello, async world!")
    await asyncio.sleep(1)
    print("Async operation completed.")

asyncio.run(say_hello())

运行结果

Hello, async world!
Async operation completed.

实用场景

  • 网络请求并发(如 aiohttpasyncssh
  • 数据库操作(如 asyncmy 驱动)
  • 实时数据处理(如 WebSocket 通信)
asyncio_coroutine

推荐学习路径

  1. 先了解 Python 协程基础
  2. 研究 async/await 语法与 asyncio 模块关系
  3. 实践异步网络请求案例(如使用 aiohttp
  4. 探索异步编程与多线程/多进程的区别

注意事项

  • 异步代码需在事件循环中运行(Python 3.7+ 推荐使用 asyncio.run()
  • 避免在异步函数中进行CPU密集型计算,否则会浪费并发优势
  • 使用 asyncio.gather() 同时运行多个任务
  • 异步函数返回的是 coroutine object,需用 awaitasync 调用

如需深入学习异步编程进阶内容,可访问 Python 异步编程进阶指南