Python在父进程和子进程之间共享一个带有Event()变量的字典

时间:2017-02-17 10:14:44

标签: python semaphore python-multiprocessing

我想在父进程和子进程之间共享一个带有一些Event()变量的dict但不知道如何。请注意,我需要在启动进程后添加或删除(键,值)。似乎正常的字典和下面的multiprocessing.Manager.dict都不能满足我的要求。

import time
from multiprocessing import Process, Event, Manager

manager = Manager()
d1 = manager.dict()
#  d1 = dict()

def fun():
    # do something and then set d1[1]
    time.sleep(4)
    d1[1].set()

p = Process(target=fun, name='fun')
p.start()
d1[1] = Event() # add a (key, value) after the process is defined
p.join()
print 'After fun, d1[1] = %s' % (d1[1].is_set())

那么在父进程和子进程之间共享这些信号量的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

替换

d1[1] = Event()

d1[1] = manager.Event()