2021-10-23 02:23:24
在Python中使用async/await进行异步编程的核心步骤如下:
1. 定义异步函数使用async def声明异步函数,函数内部可包含await表达式。异步函数本质是协程(coroutine),需通过事件循环驱动执行。
async def say_after(delay, what): await asyncio.sleep(delay) # 模拟I/O操作 print(what)2. 使用await等待异步操作通过asyncio.run()启动事件循环并执行主协程:
asyncio.run(main())使用asyncio.gather()或asyncio.create_task()实现并发:
async def main(): # 方法1:asyncio.gather() 并发执行 await asyncio.gather( say_after(1, 'hello'), say_after(2, 'world') ) # 方法2:asyncio.create_task() 显式创建任务 task1 = asyncio.create_task(say_after(1, 'hello')) task2 = asyncio.create_task(say_after(2, 'world')) await task1 await task2结合aiohttp库实现并发HTTP请求:
import aiohttpimport asyncioasync def fetch(session, url): async with session.get(url) as response: return await response.text()async def main(): async with aiohttp.ClientSession() as session: urls = [ '通过合理使用async/await,可显著提升I/O密集型程序的性能,但需注意设计模式和错误处理的复杂性。