Встречается на собеседованиях • сегодня

Зачем нужны tasks в asyncio

Tasks в asyncio позволяют конкурентно выполнять корутины, управляя их выполнением в цикле событий. Они оборачивают корутину и запускают её в фоне, не блокируя основной поток.

Ключевые моменты:

  • Запускают корутины параллельно (не путать с параллелизмом потоков).
  • Позволяют отслеживать состояние выполнения (pending, done, cancelled).
  • Можно отменять через task.cancel().

Пример:

python
import asyncio

async def foo():
    print("Start foo")
    await asyncio.sleep(1)
    print("End foo")

async def main():
    task = asyncio.create_task(foo())  # Создаём task
    print("Task запущен")  
    await task  # Ждём завершения

asyncio.run(main())

Вывод:

text
Task запущен  
Start foo  
End foo  

Без create_task корутина foo выполнилась бы последовательно, а не конкурентно.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы