Junior — Senior
50
Понимание порядка выполнения корутин в asyncio
被问到的公司:
Рексофт
任务条件
Разберите, в каком порядке печатаются сообщения. Объясните, почему при запуске приведённого ниже скрипта вывод будет именно: 1, 3, 2.
import asyncio
async def task_one():
await asyncio.sleep(10000000)
print('1')
return result
async def task_two():
await asyncio.sleep(1)
print('2')
async def run_all():
await task_one()
print('3')
await task_two()
asyncio.run(run_all())
Обратите внимание, как await блокирует дальнейшее выполнение текущей корутины до завершения вызываемой, но не останавливает работу всего цикла событий. Это и определяет порядок появления строк в консоли.