博客导语
asyncio是Python官方异步框架,彻底替代yield老式协程。本文讲透事件循环、任务对象、阻塞原理、并发执行,是爬虫、高并发接口核心基础。
一、async/await语法规则
async:定义异步函数
await:阻塞等待异步IO,自动切换其他任务
二、基础异步案例
import asyncio async def hello(): print("异步任务开始") await asyncio.sleep(2) print("异步任务结束") # 运行事件循环 asyncio.run(hello())三、多任务并发(核心用法)
async def main(): task1 = asyncio.create_task(hello()) task2 = asyncio.create_task(hello()) await task1 await task2 asyncio.run(main())两个任务并发执行,总耗时约2秒,而非4秒。
四、事件循环 EventLoop
事件循环是异步程序的调度中心,负责:注册任务、监听IO阻塞、切换任务、执行回调。所有asyncio程序都依赖事件循环驱动。
五、异步核心特性
单线程超高并发
IO阻塞自动切换任务
无锁、无线程安全问题