Python 如何理解协同过程中的等待?
下面的示例显示我们可以运行阶段1,然后运行阶段2。但是我们希望协同程序能够同时做两件事,而不是一件接一件。我知道如果我使用asyncio.get\u event\u loop.create\u任务可以实现我想要的,但是为什么要使用wait呢?我认为使用wait和仅仅使用普通函数没有区别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
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,你会发现它是不等价的。我想它包含了你问题的答案。