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

В библиотеке multiprocessing Python, с помощью чего можно обмениваться данными между процессами

В multiprocessing есть несколько способов обмена данными между процессами:

  1. Очереди (Queue) – потокобезопасный FIFO-канал.
    python
    from multiprocessing import Queue, Process
    def worker(q):
        q.put('Hello from child!')
    q = Queue()
    p = Process(target=worker, args=(q,))
    p.start()
    print(q.get())  # 'Hello from child!'
    p.join()
  1. Каналы (Pipe) – двунаправленная связь между процессами.

    python
    parent_conn, child_conn = Pipe()
    p = Process(target=worker, args=(child_conn,))
    p.start()
    print(parent_conn.recv())  # Получаем данные
  2. Разделяемая память (Value, Array, Manager):

    • Value/Array – для примитивов и массивов.
    • Manager – для сложных структур (списки, словари).

Нюансы:

  • Queue и Pipe требуют сериализации (pickle).
  • Manager медленнее из-за прокси-объектов.
  • Для больших данных лучше Queue или shared memory.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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