Как совместно использовать сложные объекты в менеджере многопроцессорной обработки

#python #class #multiprocessing #multiprocessing-manager

Вопрос:

Я знаю, что этот вопрос задают во многих потоках, но до сих пор я не мог найти правильного решения. Ниже приведен мой код:

 Class A:
   def init(self):
      self.b = B() 
Class B:
   def init(self):
       ....
 

В основной функции

 d = mp.Manager().dict()
p = mp.Pool(initializer=init function, initargs=[d])
 

d содержит объекты, созданные несколькими процессами.
Но когда он запускается, переменные внутри объекта не разделяются между процессами.

Пожалуйста, посоветуйтесь

Ответ №1:

Да, это одно из ограничений многопроцессорной обработки. Это буквально отдельные процессы с отдельными адресными пространствами. Если вам нужно общаться между ними, вам нужно использовать очередь или сокет.