Sobes.tech
Back to questions
Junior — Middle
54

Каким образом можно организовать передачу данных между отдельными процессами в Python с использованием модуля multiprocessing?

Answer from AI

sobes.tech AI

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

  1. Очереди (Queue) — потокобезопасные очереди, которые позволяют процессам обмениваться объектами.

  2. Пайпы (Pipe) — двунаправленные каналы для обмена данными между двумя процессами.

  3. Общие объекты (Value, Array) — позволяют разделять данные в памяти между процессами.

Пример использования очереди для передачи данных:

from multiprocessing import Process, Queue

def producer(q):
    q.put('Данные от производителя')


def consumer(q):
    data = q.get()
    print(f'Получено: {data}')

if __name__ == '__main__':
    q = Queue()
    p1 = Process(target=producer, args=(q,))
    p2 = Process(target=consumer, args=(q,))

    p1.start()
    p2.start()

    p1.join()
    p2.join()

В этом примере один процесс помещает данные в очередь, а другой — извлекает и обрабатывает их. Такой подход обеспечивает безопасную и удобную передачу данных между процессами.