Back to questions
СБЕР
Middle
4
Explain the output of the following Python asyncio code and why it behaves that way: ```python import asyncio async def say_hello(): print(1) await asyncio.sleep(1) print(2) async def main(): await say_hello() task = asyncio.create_task(say_hello()) print(3) await task asyncio.run(main()) ```
Companies where asked
Answer from AI
sobes.tech AI
Вывод программы будет:
1
2
1
3
2
Объяснение:
- В
main()сначала вызываетсяawait say_hello(). Это запускаетsay_hello(), который печатает1, затем делаетawait asyncio.sleep(1)— приостанавливает корутину на 1 секунду, позволяя другим задачам выполняться. - После паузы
say_hello()продолжает и печатает2. Этот вызов полностью завершается. - Затем создаётся задача
task = asyncio.create_task(say_hello()), которая запускаетsay_hello()асинхронно, но не ждёт её завершения. - Сразу после создания задачи печатается
3. - Затем
await taskожидает завершения задачи, которая сначала печатает1, затем ждёт 1 секунду, и после этого печатает2.
Таким образом, первый вызов say_hello() выполняется последовательно, а второй — запускается параллельно с выводом 3, что и отражается в порядке вывода.