异步编程的重要性
异步编程是Python中处理高并发、I/O密集型任务的重要技术。通过async/await语法和asyncio模块,可以编写高效的异步代码,避免阻塞操作,提高程序的并发性能。掌握异步编程对于构建高性能的Web应用、API服务等至关重要。
异步编程基础
1. 基本异步函数
import asyncio
import time
from datetime import datetime
def async_basics():
"""异步编程基础"""
async def fetch_data(delay, name):
"""模拟异步数据获取"""
print(f"开始获取 {name} 数据...")
await asyncio.sleep(delay) # 模拟I/O操作
print(f"{name} 数据获取完成")
return f"{name} 的数据"
async def main():
"""主异步函数"""
print("开始异步任务")
# 顺序执行
result1 = await fetch_data(1, "用户信息")
result2 = await fetch_data(1, "订单信息")
print(f"结果1: {result1}")
print(f"结果2: {result2}")
print("异步任务完成")
# 运行异步函数
asyncio.run(main())
async_basics()
2. 并发执行
def concurrent_execution():
"""并发执行示例"""
async def fetch_data(delay, name):
"""模拟异步数据获取"""
print(f"开始获取 {name} 数据...")
await asyncio.sleep(delay)
print(f"{name} 数据获取完成")
return f"{name} 的数据"
async def main():
"""并发执行主函数"""
print("开始并发任务")
start_time = time.time()
# 并发执行多个任务
tasks = [
fetch_data(1, "用户信息"),
fetch_data(1, "订单信息"),
fetch_data(1, "商品信息"),
fetch_data(1, "支付信息")
]
# 使用asyncio.gather并发执行
results = await asyncio.gather(*tasks)
end_time = time.time()
print(f"并发执行完成,耗时: {end_time - start_time:.2f}秒")
print(f"结果: {results}")
asyncio.run(main())
concurrent_execution()
转载请注明:周志洋的博客 » Python实用技巧-异步编程入门


