多过程以共享进程之间的内存



我正在尝试通过从多个函数中调用类的函数来更新类的变量,该函数正在通过多个程序上运行。

要达到所需的结果,过程( 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文件和示例。

如果您想检查一下,我也在这里举一个例子。

相关内容

  • 没有找到相关文章

最新更新