3

我产生了一个单独的进程来处理我的云服务。我像这样生成它:

CldProc = Process(target=CloudRun)
CldProc.start()

并且想知道我是否可以在该 CloudProc 和我当前的主进程之间拥有一个共享字典?

编辑: 或者我正在考虑使用 pickle 将我的数据从进程中转储到文件中并将其加载回来,这需要我使用 join() 来等待进程完成并退出。

第二次编辑 所以,我现在将我的 dict 声明为 mac_dict={} 然后我将它填充到我的子进程中并希望在我的主进程中访问它。现在我刚试过这个:

>>> dict = dict()
>>> dict['A'] = 1
>>> print dict
{'A': 1}

那么 Python 是如何知道应该从 Manager 调用 dict() 的呢?有什么我可以效仿的例子吗?

4

2 回答 2

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
于 2013-06-20T23:28:06.167 回答
2

看一看,multiprocessing.Manager特别Manager.dict()是方法。他们可能会满足您的需求。

于 2013-06-20T21:44:35.800 回答