如何跨多个进程共享字典?

时间:2013-06-07 20:40:03

标签: python dictionary multiprocessing share

我想知道是否可以跨多个进程共享字典的内容。我一直在看http://docs.python.org/2/library/multiprocessing.html#shared-ctypes-objects,但它只描述了如何共享变量,但我还没弄清楚如何共享一个完整的字典。 我知道,我可以通过将它存储到一个文件来使用pickle分享它,但这似乎不是非常有效的esp。因为我在带闪存的系统上运行这个...任何提示?

谢谢, 罗恩

1 个答案:

答案 0 :(得分:1)

使用manager库中的multiprocessing

from multiprocessing import Process, Manager

def f(d):
    for i in range(10000):
        d['blah'] += 1

if __name__ == '__main__':
    manager = Manager()

    d = manager.dict()
    d['blah'] = 0
    procs = [ Process(target=f, args=(d,)) for _ in range(10) ]
    for p in procs:
        p.start()
    for p in procs:
        p.join()

    print d