Python 中的异步编程是一种编程模式,它允许程序在等待 I/O 操作(如网络请求、文件读写等)的同时继续执行其他任务,而不会阻塞整个程序。这种方式可以提高程序的效率和响应性。
在 Python 中,异步编程的核心概念是使用 async 和 await 关键字来定义异步函数和执行异步操作。下面是一些关键的概念:
1. 异步函数(Async Functions)
异步函数是使用 async def 声明的函数。它可以包含 await 表达式,用于等待其他异步操作的完成。
import asyncioasync def async_function():# 异步操作,例如等待一个时间await asyncio.sleep(1)return "Done"
2. await 表达式
await 用于等待一个异步操作的完成。当程序执行到 await 时,它会暂时挂起当前函数的执行,执行其他任务,直到等待的操作完成。
3. 事件循环(Event Loop)
事件循环是异步编程的核心。它负责调度和执行异步任务,并且保持程序在等待 I/O 操作时继续执行其他任务。
import asyncioasync def main():# 创建事件循环loop = asyncio.get_event_loop()# 执行异步任务result = await async_function()print(result)# 运行主程序
asyncio.run(main())
4. 并发执行(Concurrent Execution)
异步编程允许同时执行多个异步任务,这样可以提高程序的效率。使用 asyncio.gather() 函数可以并发执行多个异步任务,并等待它们全部完成。
import asyncioasync def task1():await asyncio.sleep(1)return "Task 1 Done"async def task2():await asyncio.sleep(2)return "Task 2 Done"async def main():results = await asyncio.gather(task1(), task2())print(results)
# 运行主程序
asyncio.run(main())