I spawn a seperate process to handle my cloud services. I spawnb it like this:
CldProc = Process(target=CloudRun)
CldProc.start()
and am wondering if I can have a shared dictionary between that CloudProc and my current main process?
EDIT: Alternatively I am thinking to use pickle to dump my data into a file from the process and load it back, this requires me to use join() to wait for the process to complete and exit.
2nd EDIT So, I now have my dict declared like mac_dict={} and then I fill it in my subprocess and want to access it in my main process. Now I just tried this:
>>> dict = dict()
>>> dict['A'] = 1
>>> print dict
{'A': 1}
So how does Python know that dict() should be called from Managers? Is there any examples I can follow?
Got it, to simplify, I did it like this:
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
Take a look at multiprocessing.Manager and the Manager.dict() method in particular. They may serve your needs.
来源:https://stackoverflow.com/questions/17224277/share-dict-between-processes