Sobes.tech
Middle
134
questionbank

Что такое функция create_task()?

Ответ от нейросети

sobes.tech AI

Функция asyncio.create_task() создает объект Task и планирует асинхронную функцию (корутину) для выполнения в цикле событий в фоновом режиме. Она возвращает объект Task, который можно использовать для получения результата корутины или отмены ее выполнения.

import asyncio

async def my_coroutine():
    print("Корутина начала выполнение")
    await asyncio.sleep(1)
    print("Корутина закончила выполнение")
    return "Готово"

async def main():
    print("Создание задачи")
    task = asyncio.create_task(my_coroutine())
    print("Задача создана")

    # Можно выполнить другие операции, пока задача работает
    await asyncio.sleep(0.5)
    print("Выполняются другие операции")

    # Ожидание завершения задачи и получение результата
    result = await task
    print(f"Результат задачи: {result}")

asyncio.run(main())

Основные характеристики:

  • Неблокирующее выполнение: Запускает корутину без ожидания ее завершения.
  • Возвращает Task: Позволяет управлять выполнением запущенной корутины.
  • Планирование: Добавляет корутину в цикл событий для выполнения.

Отличие от await my_coroutine():

create_task() await my_coroutine()
Не блокирует поток выполнения Блокирует поток до завершения
Возвращает объект Task Возвращает результат корутины
Позволяет фоновое выполнение Последовательное выполнение

Используется для параллельного (асинхронного) выполнения нескольких корутин.