不产生协程的程序和正常同步功能之间有什么区别吗?

时间:2018-11-13 18:26:44

标签: python python-asyncio

假设我有正常的同步功能,在我的异步应用程序中经常调用它。如果我只是将其定义为异步函数以便我可以等待它,但我根本不更改其代码,这有什么区别?

1 个答案:

答案 0 :(得分:3)

它没有(语义上的)区别,没有await的协程仍然是完全可以等待的有效协程,可以传递给asyncio.runasyncio.create_taskasyncio.gather等。

您可能想添加一条注释,以使 reader 清楚该函数实际上不包含任何阻止代码。

例如,以下代码:

while some_condition:
    await coroutine_without_await()

此代码在while循环持续的时间内一直阻止事件循环,无论是否存在await