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

В каких случаях стоит использовать асинхронный подход вместо потоков

Асинхронный подход лучше использовать для I/O-bound задач (работа с сетью, БД, файлами), когда основное время тратится на ожидание. Потоки же лучше для CPU-bound задач (тяжелые вычисления).

Плюсы async:

  • Эффективнее потоков при большом кол-ве соединений (меньше накладных расходов)
  • Нет проблем с GIL (Global Interpreter Lock)
  • Четче контроль выполнения

Пример:

python
import asyncio

async def fetch_data(url):
    # Асинхронный HTTP-запрос
    await asyncio.sleep(1)  # Имитация I/O
    return f"Data from {url}"

async def main():
    tasks = [fetch_data(f"site{i}.com") for i in range(10)]
    results = await asyncio.gather(*tasks)
    print(results)

asyncio.run(main())

Когда потоки:

  • Работа с legacy-кодом, который не поддерживает async
  • Параллельные CPU-heavy операции (с учетом GIL)
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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