周志洋

个人站

持续学习 才能不被淘汰


Python实用技巧-异步编程详解

异步编程的重要性

异步编程是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实用技巧-异步编程入门

打赏一个呗

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦