2016-01-18 4 views
1

У меня есть два класса python, которые разделяют базовый класс, который позволяет определить многопроцессорность. Queue.Объекты очереди должны делиться только между процессами через наследование

Каждый из этих классов будет запущен по отдельному подпроцессу и должен обмениваться информацией через очередь.

Теперь, если базовый класс определяет очередь, то каждый объект подкласса будет создавать свою собственную очередь, что делает невозможным совместное использование элементов очереди. Но опять же я считаю, это документально

Queue objects should only be shared between processes through inheritance. 

Так что правильный способ обмена очереди между подпроцессами и как делает выше предложение даже имеет смысл?

Обратите внимание, что я, очевидно, могу передать ссылку на очередь при инициализации подпроцессов, но я хотел бы Takle этой проблемы с помощью наследования

+1

Можете ли вы привести пример кода, демонстрирующего проблему? Я быстро прочитал несколько вещей об этом, и я думаю, что по наследству они подразумевают наследование от родительского процесса (если это так определенно запутывает). Я нашел несколько примеров с использованием 'multiprocessing.Manager', чтобы избежать ошибки. –

+1

См. [Здесь] (https://docs.python.org/3.5/library/multiprocessing.html#shared-ctypes-objects). quote: * Возможно создание общих объектов с использованием разделяемой памяти, которые могут быть унаследованы дочерними процессами *. –

+0

Я думаю, что путаница - это слово «наследование». Они означают наследование между процессами, а не классами. – Mahdi

ответ

0

Так что правильный способ обмена очереди между подпроцессами и как это предложение имеет смысл?

Предложение имеет смысл, когда вы говорите о наследовании между процессами, такими как дочерние и родительские процессы. Это НЕ о классах и наследовании в объектно-ориентированном программировании.


Для правильного пути использования очередей, посмотрите на this или this, например.

Смежные вопросы