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

В чем разница между task и корутиной

Корутина (coroutine) — это специальная функция, которую можно приостанавливать и возобновлять. Она определяется с помощью async def и может содержать await. Корутина не выполняется сама по себе, пока её явно не запустят.

Task — это обёртка вокруг корутины, которая планирует её выполнение в event loop. Когда создаётся Task, корутина автоматически добавляется в цикл событий и начинает выполняться конкурентно с другими задачами.

Пример:

python
import asyncio

async def my_coroutine():
    print("Hello")
    await asyncio.sleep(1)
    print("World")

# Просто корутина (не выполняется)
coro = my_coroutine()

# Task — запускает корутину в event loop
task = asyncio.create_task(my_coroutine())

Ключевые отличия:

  1. Корутина — это функция, Task — запущенная корутина.
  2. Task управляется event loop, корутина требует явного вызова await или создания Task.
  3. Можно создать множество Task из одной корутины.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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