有一个字典变量,需要在多个进程间共享
使用Manager, 下面是一个小例子。 注意使用json前需要将类型转换。
#!/usr/bin/python# coding=utf-8import jsonfrom multiprocessing import Process, Lock, Managerdef deal(data, lock, share_dict):# do somethingshare_dict["test"] = 10mydict = dict(share_dict) # 注意,共享dict无法直接dumps,会报类型错误,必须先转换为普通字典 json.dumps(mydict)def deal_multi():data = "test"n = 10process = 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()