Python异步编程:asyncio实战指南(11/02 21:08)
asyncio是Python 3.4+引入的异步编程标准库,是编写高并发I/O密集型应用的利器。核心概念:协程用async def定义,事件循环event loop调度执行,Future表示异步结果。基础示例:async def hello()中用await asyncio.sleep(1)模拟异步操作,asyncio.run(hello())启动事件循环。并发请求:用asyncio.gather(*tasks)同时执行多个协程,比顺序执行快N倍。实战HTTP并发请求:import aiohttp,async def fetch(session,url)用async with session.get(url) as resp获取响应,async with aiohttp.ClientSession() as session创建会话,用asyncio.gather并发获取多个URL。关键注意事项:不要在async函数中用time.sleep()会阻塞事件循环,必须用await asyncio.sleep();CPU密集型任务用asyncio.to_thread()或run_in_executor放到线程池。超时控制:asyncio.wait_for(coro, timeout=5)设置超时。取消任务:task.cancel()取消协程。同步队列:asyncio.Queue实现生产者消费者模式。信号量:asyncio.Semaphore(10)限制并发数。实际应用场景:爬虫并发抓取、API聚合调用、WebSocket服务器、数据库连接池。性能对比:同步请求100个URL约10秒,asyncio并发只需约1秒。asyncio让单线程处理数万并发连接成为可能,是现代Python高性能服务的基石。
- 点赞
- 收藏
- 关注作者
评论(0)