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

Какие знаешь блокирующие функции при работе с асинхронностью

В асинхронном коде блокирующие функции — это любые синхронные операции, которые останавливают выполнение event loop, пока не завершатся. Основные примеры:

  1. Синхронный I/Otime.sleep(), requests.get(), чтение/запись файлов без aiofiles.
  2. Вычисления — CPU-bound задачи (например, сложные математические операции).
  3. Синхронные вызовы БДsqlite3, psycopg2 без асинхронных аналогов.

Пример блокирующего кода в asyncio:

python
import time

async def bad_example():
    time.sleep(5)  # Блокирует event loop

Решение — использовать асинхронные аналоги:

python
import asyncio

async def good_example():
    await asyncio.sleep(5)  # Не блокирует

Для CPU-bound задач используйте loop.run_in_executor():

python
async def heavy_computation():
    await loop.run_in_executor(None, cpu_intensive_task)
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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