async 是异步编程的关键字

在 Python 中,async 是异步编程的关键字,用于定义异步函数或异步代码块。异步编程是一种并发编程的方式,用来提高程序的执行效率,尤其是在处理 I/O 操作(如网络请求、文件读写)时。

主要概念

异步函数: 使用 async def 定义的函数称为异步函数。调用异步函数不会立即执行,而是返回一个协程对象,需要使用 await 或事件循环(如 asyncio.run)来执行。

import asyncio

async def say_hello():
    print("Hello")
    await asyncio.sleep(1)  # 模拟异步操作
    print("World")

asyncio.run(say_hello()) # 使用事件循环运行
await: 异步函数内部可以使用 await 关键字来挂起当前任务并等待另一个异步操作完成。await 后面通常跟随一个可等待对象(如协程对象、任务或异步生成器)。

async def main():
    print("Start")
    await asyncio.sleep(2)  # 模拟异步等待
    print("End")

asyncio.run(main())

异步并发: 异步编程允许多个任务同时进行,而不需要等待一个任务完全完成。例如,使用 asyncio.gather 可以并行运行多个协程。

async def task1():
    print("Task 1 start")
    await asyncio.sleep(2)
    print("Task 1 end")

async def task2():
    print("Task 2 start")
    await asyncio.sleep(1)
    print("Task 2 end")

asyncio.run(asyncio.gather(task1(), task2()))

输出顺序可能是:

Copy code
Task 1 start
Task 2 start
Task 2 end
Task 1 end

应用场景

  • 网络请求:如处理 HTTP 请求的库 aiohttp。
  • 数据库操作:如异步数据库驱动程序 asyncpg。
  • 实时系统:如 WebSocket 通信、实时数据流等。

注意事项

  • 异步函数不能直接调用,必须在事件循环中运行。
  • 异步编程的核心是非阻塞操作,适合大量 I/O 密集型任务,但对 CPU 密集型任务帮助有限。
  • 在异步函数中,只有协程和可等待对象才能用await。

通过 async 和 await,Python 的异步编程可以实现高效的并发操作,同时保持代码的可读性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

质问

开心就好

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值