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

Какие подходы используются в Python для реализации параллельной обработки запросов

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

  1. Многопоточность (threading)
    Подходит для I/O-bound задач (сетевые запросы, чтение файлов).
    Из-за GIL (Global Interpreter Lock) потоки выполняются не совсем параллельно.

    python
    import threading
    
    def task():
        print("Processing request")
    
    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 задач (вычисления). Каждый процесс имеет свой GIL.

    python
    from multiprocessing import Process
    
    def task():
        print("Processing request")
    
    processes = [Process(target=task) for _ in range(5)]
    for p in processes:
        p.start()
    for p in processes:
        p.join()
  2. Асинхронность (asyncio)
    Подходит для I/O-bound задач с однопоточным выполнением.

    python
    import asyncio
    
    async def task():
        print("Processing request")
    
    async def main():
        await asyncio.gather(*[task() for _ in range(5)])
    
    asyncio.run(main())
  3. Использование пулов (ThreadPoolExecutor, ProcessPoolExecutor)
    Упрощает управление потоками/процессами.

    python
    from concurrent.futures import ThreadPoolExecutor
    
    with ThreadPoolExecutor() as executor:
        executor.map(lambda x: print("Processing request"), range(5))
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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