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

Какие знаешь механизмы обмена данными между параллельными сущностями

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

  1. Очереди (Queue) - потокобезопасные очереди из модуля multiprocessing или queue:
python
from multiprocessing import Queue
q = Queue()
q.put('data')
data = q.get()
  1. Каналы (Pipe) - двунаправленное соединение между процессами:
python
from multiprocessing import Pipe
parent_conn, child_conn = Pipe()
parent_conn.send('data')
child_conn.recv()
  1. Разделяемая память - через Value/Array или shared_memory:
python
from multiprocessing import Value
counter = Value('i', 0)
counter.value += 1
  1. Серверные процессы - менеджеры для сложных структур:
python
from multiprocessing import Manager
manager = Manager()
shared_dict = manager.dict()
  1. Семафоры/Блокировки - для синхронизации доступа.

Для потоков также доступны примитивы из threading (Lock, Event, Condition). Выбор зависит от задачи: очереди хороши для producer-consumer, shared memory для числовых данных, а менеджеры для сложных структур.

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

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

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

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