Я пытаюсь обновлять значение count каждый раз, когда вводится функция Af.Я пытался использовать метод блокировки таким образом, но результаты не верны.Пожалуйста, помогите мне.
импортируйте многопроцессорную обработку как mp
class Trial():
lock = mp.Lock()
def __init__(self):
self.a = 1
self.b = 3
with self.lock:
self.count = 0
def f(self,x):
self.a += x
self.action(x)
with self.lock:
self.count += 1
return self.a,self.b,self.count
def action(self,act):
self.b *= act
if __name__ == '__main__':
this = list([1,2,3,4,5])
A = Trial()
pool = mp.Pool()
result = pool.map(func=A.f, iterable=this)
print(result)
[(2, 3, 1), (3, 6, 1), (4, 9, 1), (5, 12, 1), (6, 15, 1)]
Я получаю одинаковое значение счета для каждого процесса.Я думаю, что каждый процесс работает со своей копией счета.Как сделать подсчет общим для всех процессов?