Back to questions
Junior — Middle
54
Каким образом можно организовать передачу данных между отдельными процессами в Python с использованием модуля multiprocessing?
Answer from AI
sobes.tech AI
В Python для организации передачи данных между отдельными процессами в модуле multiprocessing используются несколько механизмов:
-
Очереди (Queue) — потокобезопасные очереди, которые позволяют процессам обмениваться объектами.
-
Пайпы (Pipe) — двунаправленные каналы для обмена данными между двумя процессами.
-
Общие объекты (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()
В этом примере один процесс помещает данные в очередь, а другой — извлекает и обрабатывает их. Такой подход обеспечивает безопасную и удобную передачу данных между процессами.