Что такое корутина? Как работает asyncio под капотом?

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

Короткий ответ

Что ответить на собеседовании

Корутины в библиотеке Asyncio — это специальные функции, которые могут приостанавливать своё выполнение, позволяя другим задачам выполняться в это время, и затем возобновлять работу. Это основной механизм для асинхронного программирования в Python.

Подробный разбор

Ответ с пояснениями

Корутины в библиотеке Asyncio — это специальные функции, которые могут приостанавливать своё выполнение, позволяя другим задачам выполняться в это время, и затем возобновлять работу. Это основной механизм для асинхронного программирования в Python.

Корутина определяется с помощью ключевого слова async def, и внутри неё можно использовать await для ожидания завершения других асинхронных операций без блокировки основного потока.

Пример корутины:

import asyncio

async def say_hello():
    print('Привет')
    await asyncio.sleep(1)  # приостанавливает корутину на 1 секунду
    print('Мир')

asyncio.run(say_hello())

Здесь asyncio.sleep — это асинхронная задержка, которая не блокирует выполнение других корутин в цикле событий. Таким образом, корутины позволяют писать асинхронный код, который выглядит как последовательный, но при этом эффективно использует время ожидания.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее