Я хочу, чтобы понять, как многопроцессорная и менеджер работа с целью общей памятьюPython многопроцессорных совместно Dict внутри класса
У меня есть класс со словарем, созданным на классе. init Я хочу использовать многопроцессорную обработку, чтобы вызвать функцию класса, которая заполняет словарь (каждый процесс добавляет другой ключ).
import multiprocessing as mp
from multiprocessing import Process, Manager
class num:
def __init__(self):
manager = Manager()
d = manager.dict()
# Setup list of processes
processes = [mp.Process(target=self.f, args=(d,i)) for i in range(5)]
#Run processes
for p in processes:
p.start()
#Exit the completed processes
for p in processes:
p.join()
print d
def f(self,d,i):
d[str(i)] = []
d[str(i)].append(i)
if __name__ == '__main__':
test = num()
результат:
{'1': [], '0': [], '3': [], '2': [], '4': []}
Список внутри F() должны быть разделены тоже? Как и почему?
Вопрос после ответа на ДНК, чтобы быть более конкретным –