Python 如何理解协同过程中的等待?

Python 如何理解协同过程中的等待?,python,asynchronous,python-asyncio,Python,Asynchronous,Python Asyncio,下面的示例显示我们可以运行阶段1,然后运行阶段2。但是我们希望协同程序能够同时做两件事,而不是一件接一件。我知道如果我使用asyncio.get\u event\u loop.create\u任务可以实现我想要的,但是为什么要使用wait呢?我认为使用wait和仅仅使用普通函数没有区别 import asyncio async def outer(): print('in outer') print('waiting for result1') result1 = a

下面的示例显示我们可以运行阶段1,然后运行阶段2。但是我们希望协同程序能够同时做两件事,而不是一件接一件。我知道如果我使用asyncio.get\u event\u loop.create\u任务可以实现我想要的,但是为什么要使用wait呢?我认为使用wait和仅仅使用普通函数没有区别

import asyncio


async def outer():
    print('in outer')
    print('waiting for result1')
    result1 = await phase1()
    print('waiting for result2')
    result2 = await phase2(result1)
    return (result1, result2)


async def phase1():
    print('in phase1')
    return 'result1'


async def phase2(arg):
    print('in phase2')
    return 'result2 derived from {}'.format(arg)


event_loop = asyncio.get_event_loop()
try:
    return_value = event_loop.run_until_complete(outer())
    print('return value: {!r}'.format(return_value))
finally:
    event_loop.close()

您是否尝试过在此处不使用
wait
?如果我删除两个wait和两个async,你会发现它是不等价的。我想它包含了你问题的答案。