Что выведет код Senior asyncio обновлено
Когда стартует задача из create_task
Вопрос
Что выведет код? По строке на каждый print.
import asyncio
async def child():
print('child')
async def main():
t = asyncio.create_task(child())
print('after create')
await asyncio.sleep(0)
print('after sleep')
await t
asyncio.run(main())
Попробуйте сами
Напишите, что выведет код: каждый вывод с новой строки.
Показать ответ и разбор
Коротко
Код выведет: after create, child, after sleep. createtask только планирует задачу.
Что выведет
after create
child
after sleep
Разбор
create_task только планирует задачу. Текущая корутина продолжает выполняться до первого await, на котором уступает управление. sleep(0) отдаёт управление циклу, и тот выполняет child. Затем main продолжается.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.