05 async 基础

发布时间:2026/7/29 17:13:12

05 async 基础 async 基础同步与异步同步的特点一件事做完才做下一件。等待时比如等网络、等 API 响应程序闲着干等CPU 在空转。异步的特点遇到「要等」的操作时先去做别的事等结果好了再回来处理。适合 I/O 密集型任务网络请求、读文件、调 LLM API关键字速查关键字作用async def定义协程函数coroutine functionawait在 async 函数里等待另一个 async 操作完成asyncio.run()在普通脚本里启动整个 async 程序入口1. async def — 定义协程函数asyncdeffetch_data():return数据调用 fetch_data() 不会立刻执行函数体而是返回一个协程对象coroutine object。2. await — 等待协程完成asyncdefmain():resultawaitfetch_data()# 等 fetch_data 跑完拿到返回值print(result)await 只能写在 async def 函数内部。3. asyncio.run() — 程序入口普通 .py 文件里没有「事件循环」需要这样启动importasyncioasyncdefmain():...asyncio.run(main())# 创建事件循环运行 main结束后关闭4. asyncio.gather — 并发resultsawaitasyncio.gather(task_a(),task_b(),task_c())# 或 tasks [task_a(), task_b(), task_c()] ,# results await asyncio.gather(*tasks)是 Python 的可迭代对象解包unpacking运算符。写在函数调用里时会把列表/元组里的元素拆开当作多个独立参数传进去。要点说明传入多个协程注意是 fetch_url(“a”) 这种调用不是函数名本身返回列表按传入顺序对应各任务返回值执行事件循环同时调度在 await 等待处切换5. 测量耗时time.perf_counter()对比顺序和并发需要计时importtime starttime.perf_counter()# performance counter 的缩写意思是 性能计数器# ... 执行任务 ...elapsedtime.perf_counter()-startprint(f耗时:{elapsed:.2f}秒)

相关新闻