Sobes.tech
Junior — Senior
51

Понимание порядка выполнения корутин в 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 блокирует дальнейшее выполнение текущей корутины до завершения вызываемой, но не останавливает работу всего цикла событий. Это и определяет порядок появления строк в консоли.