Как можно обмениваться данными между процессами

Python Junior Без компании
Как можно обмениваться данными между процессами
Ответы
В Python есть несколько способов обмена данными между процессами: - **Очереди (Queue)** – потокобезопасный способ передачи данных: ``` from multiprocessing import Process, Queue 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() ``` - **Каналы (Pipe)** – двунаправленная передача данных: ``` from multiprocessing import Pipe, Process def worker(conn): conn.send('Message') conn.close() parent_conn, child_conn = Pipe() p = Process(target=worker, args=(child_conn,)) p.start() print(parent_conn.recv()) # 'Message' p.join() ``` - **Разделяемая память (Value, Array, Manager)** – для изменяемых структур: ``` from multiprocessing import Process, Value def increment(n): n.value += 1 num = Value('i', 0) p = Process(target=increment, args=(num,)) p.start() p.join() print(num.value) # 1 ``` - **Сокеты или файлы** – для межпроцессного взаимодействия (IPC) вне Python. Выбор зависит от задачи: `Queue` и `Pipe` – для простых сообщений, `Manager` – для сложных структур, `Value/Array` – для числовых данных.