Python 关键字 - async

在Python中,async 关键字用于定义异步函数。
异步函数是可以在任何时候暂停和恢复的函数,允许其他代码在此期间运行。
这对于涉及等待外部资源的任务非常有用,例如网络请求或文件操作,而不会阻塞其他代码的执行。

💡 用法

async 关键字用于定义异步函数。
异步函数使用 async 关键字在 def 关键字之前进行定义,如下所示:

python
async def my_async_function():
    # 代码放在这里

在异步函数内部,您可以使用 await 关键字暂停函数的执行,直到满足某个条件。
这个条件通常是一个可等待的协程,它是一种特殊类型的对象,可以被等待。

✏️ 语法

python
async def function_name():
    # 代码放在这里

在上面的代码中,async 是用于定义异步函数的关键字。
function_name 是函数的名称,函数内部的代码在函数定义下缩进。

📘 示例

python
import asyncio

async def fetch_data(url):
    # 模拟网络请求
    await asyncio.sleep(1)
    return "从 " + url + " 获取的数据"

async def main():
    # 创建协程列表
    coroutines = [
        fetch_data("https://example.com"),
        fetch_data("https://google.com"),
        fetch_data("https://github.com")
    ]
    
    # 等待所有协程完成
    results = await asyncio.gather(*coroutines)
    
    # 打印结果
    for result in results:
        print(result)

# 运行主函数
asyncio.run(main())

在上面的代码中,我们定义了一个异步函数 fetch_data,它通过睡眠1秒来模拟网络请求。
然后,我们定义了另一个异步函数 main,它创建了一个协程列表,使用 asyncio.gather 等待所有协程完成,并打印结果。

⚠️ 注意

  • 异步函数只能从其他异步函数或事件循环中调用。
  • await 关键字只能在异步函数内部使用。
  • 异步函数在调用时不会立即执行,而是返回一个可以安排执行的协程对象。
  • 异步函数可用于提高I/O密集型任务的性能,但对于CPU密集型任务可能不会提供显著的好处。