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

Какие подходы применял для параллельной обработки данных

В Python для параллельной обработки данных часто используют:

  1. Потоки (threading) – подходят для I/O-bound задач (например, сетевые запросы).
    python
    import threading
    def task():
        print("Thread running")
    threads = [threading.Thread(target=task) for _ in range(5)]
    for t in threads: t.start()
    for t in threads: t.join()
  1. Процессы (multiprocessing) – для CPU-bound задач (вычисления).

    python
    from multiprocessing import Pool
    def square(x):
        return x * x
    with Pool(4) as p:
        print(p.map(square, [1, 2, 3]))
  2. Asyncio – асинхронность для I/O-bound задач с корутинами.

    python
    import asyncio
    async def fetch_data():
        await asyncio.sleep(1)
        return "Data"
    async def main():
        tasks = [fetch_data() for _ in range(3)]
        results = await asyncio.gather(*tasks)
    asyncio.run(main())
  3. Dask/Ray – для распределенных вычислений и больших данных.

Нюансы:

  • GIL ограничивает потоки в CPU-bound задачах.
  • Процессы имеют накладные расходы на создание.
  • Asyncio требует переписывания кода под async/await.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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