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

Какие знаешь способо передачи данных между процессами в Python

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

  1. Очереди (Queue) – потокобезопасный способ обмена данными.
python
from multiprocessing import Queue, Process

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("Data from child")
conn.close()

parent_conn, child_conn = Pipe()
p = Process(target=worker, args=(child_conn,))
p.start()
print(parent_conn.recv()) # "Data from child"
p.join()

text

3. **Разделяемая память (Value, Array, shared_memory)** – для числовых данных.  
```python
from multiprocessing import Process, Value

def increment(shared_num):
    shared_num.value += 1

num = Value('i', 0)
p = Process(target=increment, args=(num,))
p.start()
p.join()
print(num.value)  # 1
  1. Серверные процессы (Manager) – для сложных структур (списки, словари).
python
from multiprocessing import Manager, Process

def worker(shared_list):
    shared_list.append(1)

with Manager() as manager:
    lst = manager.list()
    p = Process(target=worker, args=(lst,))
    p.start()
    p.join()
    print(lst)  # [1]

Выбор зависит от типа данных и требований к производительности.

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

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

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

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