Встречается на 2% собеседований по Python
В библиотеке multiprocessing Python, с помощью чего можно обмениваться данными между процессами
В multiprocessing есть несколько способов обмена данными между процессами:
- Очереди (
Queue) – потокобезопасный FIFO-канал.pythonfrom 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()
-
Каналы (
Pipe) – двунаправленная связь между процессами.pythonparent_conn, child_conn = Pipe() p = Process(target=worker, args=(child_conn,)) p.start() print(parent_conn.recv()) # Получаем данные -
Разделяемая память (
Value,Array,Manager):Value/Array– для примитивов и массивов.Manager– для сложных структур (списки, словари).
Нюансы:
QueueиPipeтребуют сериализации (pickle).Managerмедленнее из-за прокси-объектов.- Для больших данных лучше
Queueили shared memory.

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