У меня есть список объектов ObjList
, где все объекты являются экземплярами одного и того же класса.Этот класс имеет метод run
, который я хотел бы выполнить параллельно для объектов в ObjList
.
Результаты вычислений затем сохраняются внутри объектов.Без распараллеливания в настоящее время я делаю что-то вроде
for obj in self.ObjList:
obj.Run()
. Этот код является частью метода класса, который содержит и обрабатывает «списки» этих объектов.После этого я хочу прочитать результаты вычислений, выполненных obj.Run
.Я попробовал методы multiprocessing.Pool
, где столкнулся с проблемами с pickle
.Я также пытался использовать multiprocessing.Process
, но там у меня была проблема, что результаты были сохранены в копии объекта, который затем был отброшен.Мне не удалось вернуть манипулируемый объект.
Существует ли простой способ применения одного и того же метода класса к списку объектов, которые являются экземплярами одного и того же класса (который довольно сложный и использует несколько объектов сам)?
Редактировать : Я попробовал подход, предложенный в ответах на этот вопрос , но тогда я всегда получаю ошибки вида
AttributeError: Can't pickle local object 'someclass.<locals>.<lambda>'