Python函数加async,但没有加await可以异步吗

发布时间 2024-01-06 22:31:21作者: 扫地升

  在Python中,如果一个函数被标记为async,这意味着它是一个异步函数。但是,仅仅因为一个函数被标记为异步并不意味着它会自动异步执行。为了使异步函数真正异步,你需要在函数内部使用await关键字来调用其他异步函数或操作。以下是一个简单的例子来说明这一点:

import asyncio

async def my_async_function():
    print("This is an asynchronous function.")

# 调用异步函数
asyncio.run(my_async_function())

  在上面的例子中,my_async_function被标记为异步,但没有使用await。因此,当调用这个函数时,它实际上会同步执行。

  如果你想让它真正异步执行,你需要使用await来调用其他异步操作,例如:

import asyncio
import time

async def my_async_function():
    print("Starting the asynchronous function.")
    await asyncio.sleep(2)  # 等待2秒
    print("Done with the asynchronous function.")

# 调用异步函数
asyncio.run(my_async_function())

  输出结果,如下所示:

Starting the asynchronous function.
Done with the asynchronous function.

  在上面的例子中,my_async_function使用了await来调用asyncio.sleep(2),这是一个异步操作。因此,my_async_function本身会异步执行,等待2秒后才会继续执行。




::: block-1

NLP工程化

1.本公众号以对话系统为中心,专注于Python/C++/CUDA、ML/DL/RL和NLP/KG/DS/LLM领域的技术分享。
2.本公众号Roadmap可查看飞书文档:https://z0yrmerhgi8.feishu.cn/wiki/Zpewwe2T2iCQfwkSyMOcgwdInhf
:::

:::: column
::: column-left 50%
NLP工程化

:::
::: column-right 50%

飞书文档