Встречается на собеседованиях • сегодня
В библиотеке 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
интервью вопросы и ответы