我产生了一个单独的进程来处理我的云服务。我像这样生成它:
CldProc = Process(target=CloudRun)
CldProc.start()
我想知道我是否可以在CloudProc和我当前的主流程之间拥有一个共享字典?
编辑: 或者我想使用pickle将我的数据转储到进程中的文件并加载回来,这需要我使用join()来等待进程完成并退出。
第二次编辑 所以,我现在将我的dict声明为mac_dict = {},然后将其填入我的子进程并想要在我的主进程中访问它。现在我只是尝试了这个:
>>> dict = dict()
>>> dict['A'] = 1
>>> print dict
{'A': 1}
那么Python如何知道应该从Managers调用dict()? 我可以遵循任何例子吗?
答案 0 :(得分:6)
知道了,为了简化,我这样做了:
from multiprocessing import Process, Manager
def myf(myd):
myd[1] = "HELLO WORLD!"
def proc(d):
myf(d)
m=Manager()
locdict=m.dict()
locdict[2] = "HI BUDDY!"
p = Process(target=proc, args=(locdict,))
p.start()
p.join()
print locdict
答案 1 :(得分:3)
特别关注multiprocessing.Manager
和Manager.dict()
方法。它们可能满足您的需求。