Встречается на 2% собеседований по Python
Как можно обмениваться данными между процессами
В Python есть несколько способов обмена данными между процессами:
- Очереди (Queue) – потокобезопасный способ передачи данных:
python
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) – двунаправленная передача данных:
python
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) – для изменяемых структур:
python
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 – для числовых данных.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
Похожие вопросы
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы