我正在尝试通过从多个函数中调用类的函数来更新类的变量,该函数正在通过多个程序上运行。
要达到所需的结果,过程( p1
(需要更新变量"事务",然后应通过过程进行修改( p2
(
我尝试了以下代码,我知道我应该使用supperrocess.value或Manager来获得所需的结果,并且我不确定如何进行此操作,因为我要更新的变量是在另一个类中
以下是代码:
from multiprocessing import Process
from helper import Helper
camsource = ['a','b']
Pros = []
def sub(i):
HC.trail_func(i)
def main():
for i in camsource:
print ("Camera Thread {} Started!".format(i))
p = Process(target=sub, args=(i))
Pros.append(p)
p.start()
# block until all the threads finish (i.e. block until all function_x calls finish)
for t in Pros:
t.join()
if __name__ == "__main__":
HC = Helper()
main()
这是辅助代码:
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
class Helper():
def __init__(self):
self.transactions = []
def trail_func(self,preview):
if preview == 'a':
self.transactions.append({"Apple":1})
else:
if self.transactions[0]['Apple'] == 1:
self.transactions[0]['Apple'] = self.transactions[0]['Apple'] + 1
print (self.transactions)
所需的输出:
p1
:
transactions = {"Apple":1}
p2
:
transactions = {"Apple":2}
我最近发布了该模块,可以帮助您使用代码锁上它们,以解决并发问题。无论如何,请查看readme文件和示例。
如果您想检查一下,我也在这里举一个例子。