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

Как можно асинхронно проводить операции в рамках одного процесса

В Python для асинхронных операций в одном процессе используется модуль asyncio. Он позволяет писать конкурентный код с синтаксисом async/await. Основные компоненты:

  1. Корутины - функции, объявленные с async def
  2. Event Loop - управляет выполнением корутин
  3. Awaitables - объекты, которые можно использовать с await

Пример:

python
import asyncio

async def fetch_data():
    print("Начало загрузки")
    await asyncio.sleep(2)  # Имитация I/O операции
    print("Данные загружены")
    return {"data": 123}

async def main():
    task1 = asyncio.create_task(fetch_data())
    task2 = asyncio.create_task(fetch_data())
    
    await task1
    await task2

asyncio.run(main())

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

  • asyncio.sleep() имитирует I/O операцию без блокировки
  • create_task() запускает корутину конкурентно
  • await приостанавливает выполнение корутины, пока операция не завершится
  • Event Loop переключается между задачами во время ожидания

Этот подход эффективен для I/O-bound задач, но не для CPU-bound операций.

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

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

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

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