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

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