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

Как решишь проблему задач, требующих много времени

Для решения долгих задач в Python можно использовать несколько подходов:

  1. Асинхронность (asyncio) - для I/O-bound задач:
python
import asyncio

async def long_task():
    await asyncio.sleep(5)  # Имитация долгой операции
    return "Готово"

async def main():
    result = await long_task()
    print(result)

asyncio.run(main())
  1. Многопоточность (threading) - для I/O-bound задач с блокирующими вызовами:
python
from threading import Thread

def long_task():
    import time
    time.sleep(5)
    print("Готово")

thread = Thread(target=long_task)
thread.start()
  1. Мультипроцессинг (multiprocessing) - для CPU-bound задач:
python
from multiprocessing import Process

def cpu_intensive():
    # Тяжелые вычисления
    pass

p = Process(target=cpu_intensive)
p.start()
  1. Очереди задач (Celery/RQ) - для фоновой обработки в продакшне.

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

  • Выбирай подход в зависимости от типа задачи (I/O vs CPU-bound)
  • Для веб-приложений используй асинхронные фреймворки (FastAPI, Quart)
  • Для тяжелых вычислений - multiprocessing или вынос в отдельный сервис
  • Всегда учитывай накладные расходы на создание потоков/процессов
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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