什么是异步编程
异步编程是一种并发编程模式,允许程序在等待I/O操作时执行其他任务,从而大幅提升程序性能。Python通过asyncio模块提供了原生的异步支持。
为什么需要异步
传统的同步代码在进行网络请求、文件读写等I/O操作时会阻塞整个程序。异步编程可以让程序在等待这些操作完成的同时继续处理其他任务。
asyncio基础
import asyncio
async def fetch_data(url): print(f"Fetching {url}") await asyncio.sleep(1) # 模拟网络请求 return f"Data from {url}"
async def main(): tasks = [fetch_data(f"api.example.com/{i}") for i in range(5)] results = await asyncio.gather(*tasks) for r in results: print(r)
asyncio.run(main())
实战:异步HTTP请求
使用httpx库进行异步HTTP请求:
import httpx import asyncio
async def fetch_all(): async with httpx.AsyncClient() as client: urls = ["httpbin.org/get"] * 10 tasks = [client.get(url) for url in urls] responses = await asyncio.gather(*tasks) return [r.status_code for r in responses]
总结
异步编程是现代Python开发的必备技能,掌握asyncio可以让你的程序性能提升数倍。从简单的async/await开始,逐步深入到并发控制和错误处理。