asyncio 是 Python 3.4 引入的异步 I/O 框架,用于编写并发的网络和 IO 程序。它基于协程(coroutine)实现,能有效提升 IO 密集型任务的性能。🚀

核心概念

  • 事件循环(Event Loop):驱动 asyncio 的核心,负责调度协程的执行
  • 异步函数async def):通过 await 关键字挂起当前协程,让事件循环调度其他任务
  • 并发 vs 并行:asyncio 实现的是并发(通过单线程切换任务),而非多线程的并行

简单示例

import asyncio

async def count(name, count_to):
    print(f"{name} counting to {count_to}")
    for i in range(count_to):
        await asyncio.sleep(0.1)  # 模拟 IO 操作
        print(f"{name}: {i}")

async def main():
    await asyncio.gather(count("A", 3), count("B", 5))

if __name__ == "__main__":
    asyncio.run(main())

适用场景

  • 网络请求(如 HTTP 客户端/服务器)
  • 数据库操作(异步查询)
  • 文件读写(非阻塞操作)
  • 游戏开发(事件驱动逻辑)

学习建议

  1. 先理解协程与线程的区别(点击查看详解
  2. 掌握 async/await 语法糖的使用
  3. 实践异步文件读写:asyncio_file_operations
asyncio_logo

通过异步编程,可以显著降低高 IO 密集型应用的延迟。建议结合实际项目练习,如开发异步爬虫或实时数据监控系统。📊

扩展阅读

event_loop_structure