【python】多进程共享变量
有一个字典变量,需要在多个进程间共享
使用Manager, 下面是一个小例子。 注意使用json前需要将类型转换。
#!/usr/bin/python # coding=utf-8 import json from multiprocessing import Process, Lock, Manager def deal(data, lock, share_dict): # do something share_dict["test"] = 10 mydict = dict(share_dict) # 注意,共享dict无法直接dumps,会报类型错误,必须先转换为普通字典 json.dumps(mydict) def deal_multi(): data = "test" n = 10 process = list() lock = Lock() # 多进程锁 m = Manager() share_dict = m.dict() # 多进程共享变量 字典 for i in xrange(n): process.append(Process(target=deal, args=(data, lock, share_dict))) for p in process: p.start() for p in process: p.join() if __name__ == '__main__': deal_multi()