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

Python Junior Без компании
Можно ли обмениваться данными между процессами
Ответы
Да, в Python можно обмениваться данными между процессами. Основные способы: - **Очереди (Queue)** - потокобезопасный способ обмена данными: ``` from multiprocessing import Process, Queue def worker(q): q.put('Hello from child') if __name__ == '__main__': q = Queue() p = Process(target=worker, args=(q,)) p.start() print(q.get()) # Получаем данные p.join() ``` - **Каналы (Pipe)** - двунаправленное соединение: ``` from multiprocessing import Process, Pipe 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()) # Получаем сообщение p.join() ``` - **Разделяемая память** (Value, Array): ``` from multiprocessing import Process, Value def worker(n): n.value += 1 num = Value('i', 0) p = Process(target=worker, args=(num,)) p.start() p.join() print(num.value) # Выведет 1 ``` Важно: процессы не используют общее пространство памяти, поэтому для обмена данными нужны специальные механизмы IPC (Inter-Process Communication).