Встречается на собеседованиях • сегодня

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

В Python есть несколько способов обмена данными между процессами:

  1. Очереди (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()
  1. Каналы (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()
  1. Разделяемая память (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
  1. Сокеты или файлы – для межпроцессного взаимодействия (IPC) вне Python.

Выбор зависит от задачи: Queue и Pipe – для простых сообщений, Manager – для сложных структур, Value/Array – для числовых данных.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы