Один из способов сделать это с помощью python 3.x - использовать метод multiprocessing.Pool
и map
, чтобы применить метод myObj.go
к каждому элементу. в вашем myList
. Параметр processes
для построения Pool
может быть изменен в зависимости от количества параллельных процессов, которые вы хотели бы использовать, обычно исходя из доступного количества ядер на вашем компьютере. Обратите внимание, что для того, чтобы сохранить результат обновления myObj.x
на каждой итерации, я изменил метод go
, чтобы он возвращал self
:
import multiprocessing as mp
class myObj:
def __init__(self):
self.x = 0
def go(self):
self.x += 1
return self
if __name__ == "__main__":
myList = [myObj() for i in range(100)]
with mp.Pool(processes=4) as pool:
for t in range(1000):
myList = pool.map(myObj.go, myList)
Вы также можете прочитать этот ответ для более возможных подходов.