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

Чем асинхронность лучше многопоточности в Python

Асинхронность в Python предпочтительнее многопоточности для I/O-bound задач благодаря более эффективному использованию ресурсов. В отличие от потоков, корутины работают в одном потоке, переключаясь между задачами при ожидании I/O, что исключает накладные расходы на создание потоков и GIL.

Основные преимущества:

  • Нет накладных расходов на создание потоков
  • Избегаем проблем с GIL (Global Interpreter Lock)
  • Проще отладка (нет race conditions)
  • Лучше масштабируется для большого числа соединений

Пример асинхронного кода:

python
import asyncio

async def fetch_data():
    await asyncio.sleep(1)  # Имитация I/O операции
    return "Данные"

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

asyncio.run(main())

Однако для CPU-bound задач лучше использовать multiprocessing.

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

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

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

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