Sobes.tech
Back to tasks
Junior — Senior
53

Понимание порядка выполнения корутин в asyncio

Companies where asked:
Рексофт

Task condition

livecode

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