Есть ли простой способ использовать многопроцессорность, чтобы сделать эквивалент этого?
for sim in sim_list:
sim.run()
где элементы sim_list являются "моделирование" объекты и запуск() является методом класса моделирования, который делает изменение атрибутов объектов. Например:
class simulation:
def __init__(self):
self.state['done']=False
self.cmd="program"
def run(self):
subprocess.call(self.cmd)
self.state['done']=True
Все симы в sim_list независимы, поэтому стратегия не должна быть поточно-ориентированной.
Я попробовал следующее, что явно ошибочно, поскольку аргумент передается методом глубокой копии и не изменяется на месте.
from multiprocessing import Process
for sim in sim_list:
b = Process(target=simulation.run, args=[sim])
b.start()
b.join()