Мне нужно написать метод, который выполняет другой метод того же класса в новом процессе.
Я хочу использовать пакет, поэтому мне нужно реализовать класс и метод "compute", которыйбудет использоваться этим пакетом. Но есть проблема с накоплением памяти, которая может только? будет решена, если я выполню метод «вычислить» в новом процессе и после вычислений процесс закроется, и у меня не возникнет проблем с памятью.
Метод вычисления возвращает пакету ошибку (Float).
У меня есть некоторые проблемы с тем, чтобы заставить это работать, я не уверен, действительно ли мне нужен Менеджер, возможно многопроцессорный. Значение уже достаточно? https://docs.python.org/3.4/library/multiprocessing.html?highlight=process#multiprocessing.Value Но принцип, вероятно, тот же, и я не могу, к сожалению, понять его правильно ...
Помощь будет высоко ценится !!
from multiprocessing import Process, Manager
class Worker():
def compute(self, budget):
manager = Manager()
val_error = manager.Value()
p= Process(target = self.compute1, args=( budget,val_error))
p.start()
p.join()
return val_error
def compute1(budget, val_error):
val_error = budget*10
if __name__ == '__main__':
a= Worker()
x = a.compute( budget=2)
print(x)